2013-08-01 7 views
18

asm.jsが来ています。今すぐ完全にサポートするChromeの噂もあります。Javaをasm.jsにコンパイル

しかし、これまでのところ、ネイティブスピード近くで実行されますJavaScriptのにC/C++ソースをコンパイルするために使用されている(...あなたはネイティブの近くにどう定義するかによって異なります)

私が使用することを計画してきましたGWTを使用してJavaコードをJavaScriptに変換することができましたが、現時点では既存のパス/プロシージャがあるかどうか疑問に思っていましたJavaソース ASM.JSへのコードは何ですか? 1がそれを望む理由を

もう一つの理由: - C/C++のようなJava-to-ASM.js might very well run faster then Java-to-Dalvik on some Android phone!

+0

ブラウザでJavaを実行したい場合は、他にもいくつかの方法があります。 JVM自体のほとんどをエミュレートしています:http://teavm.org/とhttp://www.doppiojvm.org/ –

答えて

8

asm.js(現在は)手動でメモリの割り当てを管理し、リリースの言語のためのターゲットとして設計されています。現在、ガベージコレクションのセマンティクスを持つ言語を処理することはできません。ガベージコレクションのランタイムであるJavaScriptであると思われるかもしれません。

Javaコードをj2cに渡してから、そのC++出力をemscriptenに渡し、asm.jsにコンパイルします。

別の可能性としては、ゴミの収集が、Java VMだけではなくがで書かれている

+3

JavaでのガベージコレクションはC/C++で書かれています。 – Tim

2

... VMKitを使用してLLVMコンパイラによってJavaコードを渡し、LLVMバックエンドasm.js emscriptenを通じてそれを渡すことであろうC/C++からasm.jsは「C/C++からJavaScript全体のVMをコンパイルし、JavaScriptを発行するJITを実装しています」というthe possibilityについてコメントしています。

今のところ(2015年6月)、この可能性は現実にはほど遠いので、気に入ったらGWT(私はそれをお勧めしません)に固執してください。

関連する問題