HotSpot JVMチームは、Java、Javascriptなどを動的にコンパイル/インジェクトしてJVMの速度で実行できるように、非常にクールなプロジェクトを開発しています。 質問: - OpenJ9はGraal/Truffleと相互運用できますか? - OMRがGraal/Truffleに似ている場合は、それらを比較できますか?OpenJ9とProject Graal/Truffle
答えて
トリュフAPIのサポートに関するいくつかの情報はここにある:OMRとグラール間 https://github.com/eclipse/openj9/issues/59
比較はここに書かれていますhttps://github.com/eclipse/omr/issues/1118
はその問題からジョンDuimovichを引用:だから
、簡単な答えは、Truffle/Graalがプログラミング言語を実装するためにJVMを使用することを検討しているということです。 Truffleは、ASTパーサを実装し、Graal(詳細はスキップされている)を介して最適化することで、言語を実装するために使用されます。 Graalはコード生成に重点を置き、ガベージコレクションのためにJavaに依存しています。 Javaで言語を実装します。ターゲット言語の多くはC/C++を実装言語として使用しているので、これは初心者ではないかもしれませんが、おそらくTruffleCを使って直接コンパイルすることができますが、それはオープンソースだとは思いません。印象的なベンチマークがあるので、そこにはクールなものがあります。
と
EclipseのOMRは、生産準備IBMのJavaによって使用されるコード、および他の言語へのブートストラップしようとしている、Javaで良いベンチマークを持っていますが、他の言語のための証拠のポイントはまだ進行中ですOMRはオープンソースプロジェクトとして約1年程であるためです。既存の言語実装者は、コンポーネントを段階的に採用できるようにC/C++実装を書き直す必要はありません。コード・ジェネラル・ライブラリを統合したい場合や、統合する別のGCインプリメンテーションを使用する場合は、OMRがモジュラー・コンポーネントとして提供されているので選択します。
また、JavaコードでJavaからOMRのJITBuilderコードジェネレータを起動できるプロトタイプもあります。 https://www.youtube.com/watch?v=w5rcBiOHrB0
- 1. Java9のリンクとOpenJ9
- 2. OpenJ9とドッキング用のコンテナ?
- 3. Openj9でAOTコンパイラを使うには?
- 4. Project Professional 2013とProject Server 2013の接続
- 5. OpenJ9での高度なAVX/AVX2ベクトル操作
- 6. WebService Project Java on Gradle Project
- 7. virtualenv project vs django/rapidsms project
- 8. Eclipseの "Java Project"オプションと "Project"オプションの違いは何ですか?
- 9. MVC 3:AutoMapperとProject/Solution Structure
- 10. MapboxとProject TangoのUnityプロジェクト
- 11. Xcode ProjectをXamarin Projectからエクスポートする
- 12. Selenium webdriver、chrome browser、maven project、junit project
- 13. SharePoint Project
- 14. Android Project
- 15. Eclipse StatETの "R Project"と "R Package Project"の違いは何ですか?
- 16. project-Swift.hコンパイラエラー
- 17. android projectのカスタムフォント
- 18. Eclipse Android Projectエラー
- 19. Android Project Build Target
- 20. subversioning ipad app project
- 21. Javascript Canvas Flowcharting Project?
- 22. SubSonic.Core with Commercial project
- 23. A lan pet Project
- 24. Python OOP Project Organization
- 25. Laravel Project ERR_EMPTY_RESPONSE
- 26. C#Project ObservableCollection
- 27. Boxfuse + Jhipster project
- 28. 10001st Prime - Project Euler
- 29. Django Project- CSS
- 30. Java Project - Eclipse
>ターゲット言語の多くがC/C++を実装言語として使用するため、これは非スターターである可能性があります。 たとえば、Cコードを呼び出すことができます。 JNIにはGraalLLVM [1](コードネームsulong)があります。これはJVM内でC/C++/Fortranを実行します(他のTruffle言語と同様に解釈されます)。 R/Rubyネイティブ拡張を実行するためにこれを使用しているFastRまたはTruffleRubyを参照してください。 [1] https://github.com/graalvm/sulong – Steves
...もちろん、問題の可能性がある既存の実装を移植したいのであれば、同時に利益を得ることはないでしょうORM/Truffleが提供するものにその実装を採用します。 – Steves