21

asm.jsが来る予定です。現在、Chrome が間もなく完全にサポートされるという噂さえあります。

しかし、これまでのところ、ネイティブに近い速度で実行される C/C++ ソースを JavaScript にコンパイルするために使用されてきました(ネイティブに近いと定義する方法によって異なります...)。

GWT を使用して Java コードを JavaScript に変換することを計画していましたが、プレーンなJava ソースコードを ASM.JSにコンパイルするための既存のパス/手順が現在存在するかどうか疑問に思っていました。

それが必要なもう 1 つの理由: Java-to-ASM.js は、一部の Android フォンで Java-to-Dalvik よりも高速に実行される可能性があります。

4

3 に答える 3

10

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

本当に回り道をしたい場合は、Java コードをj2cを介して渡し、その C++ 出力をemscriptenを介して渡します。これにより、asm.js にコンパイルされます。

もう 1 つの可能性は、VMKit を使用して LLVM コンパイラを介して Java コードを渡し、それを emscripten asm.js llvm バックエンドを介して渡すことです...

于 2013-11-11T06:42:22.340 に答える
2

ガベージ コレクションだけでなく、Java VM も C/C++ で記述されているため、asm.js は「VM 全体を C/C++ から JavaScript にコンパイルし、JavaScript を発行する JIT を実装する」可能性についてコメントしています。

現時点 (2015 年 6 月) では、この可能性は現実にはほど遠いので、GWT に固執してください (お勧めしません)。

于 2015-06-17T21:42:18.433 に答える