4

私のscalaアプリケーションは、整数と倍精度浮動小数点数の大きな配列に対して単純な操作を実行する必要があり、パフォーマンスがボトルネックになっています。さまざまなベンチマークを通じて結果を観察することはできますが、特定の最適化(エスケープ分析など)が開始されたときに正確に指を置くのに苦労しました。私はscalaアプリケーションのAOTコンパイルを実行したいので、特定の最適化を表示または適用(または実装)できます...または可能であればネイティブコードにコンパイルして、境界チェックのようなコーナーを切り取り、それがどうかを観察できます違いを生みます。

私の質問:scalaではどのような代替コンパイル方法が機能しますか?llvm、vmkit、soot、gcjなどのツールに興味があります。現時点でscalaでこれらのツールを正常に使用しているのは誰ですか、またはこれらのメソッドのいずれも現在互換性がないか、維持されていませんか?

4

2 に答える 2

2

GCJは、JVMクラスをネイティブコードにコンパイルできます。このブログでは、Scalaコードで行われたテストについて説明しています:http://lampblogs.epfl.ch/b2evolution/blogs/index.php/2006/10/02/scala_goes_native_almost? blog = 7

于 2011-06-16T05:25:58.273 に答える
2

私自身の質問に答えるために、JVM以外にScalaの代替バックエンドはありません。.NETバックエンドは長い間開発されてきましたが、そのステータスは不明です。LLVMバックエンドもまだ使用できる状態ではなく、その将来がどうなるかは明確ではありません。

于 2012-11-15T19:45:38.530 に答える