12

Haxe でコンパイルされたコードのパフォーマンスは、さまざまなターゲットとどのように比較されますか?

たとえば、Haxe からの PHP は元の PHP コードよりも速いですか、遅いですか?

Javascriptはどうですか?閃光?C++? 等。

そこに深刻なベンチマークはありますか?

4

2 に答える 2

16

どのようなベンチマークがあるかはわかりませんが、ターゲット プラットフォームによって異なることは確かなので、これは答えの半分に過ぎないと思います。しかし、ここにいくつかの一般的なポイントがあります:

  • 検索すると、OpenFL/NME と Flash を比較するベンチマークがいくつか見つかります。一例はこれです

  • CPP の場合、通常の C++ よりも少し遅いと言われています。手動で最適化された C++ はかなり高速になると思います。HXCPP の作成者によるベンチマークの例はこちら

  • JS については、Haxe がパフォーマンスの相対的なベスト プラクティスに固執していることを知っています。たとえば、Haxe の厳密に型付けされた性質は、Javascript JIT コンパイラーで最高のパフォーマンスをもたらす傾向があるため、Haxe コードは適切に作成された Javascript にかなり匹敵します。(注意してください、ここでは通常の JS について話しているのであって、canvas/openFL グラフィックスのものではありません - 明らかに独自のベンチマークが必要になります)。

  • PHP については、Haxe で生成された PHP が手書きの PHP とどのように比較されるかはわかりません。私が言えることは、PHP から Neko にほぼシームレスに切り替えることができ (どちらも apache 上で簡単に実行できます)、手書きの PHP よりもはるかに高速にコードを取得できるということです。ボトルネックは、コードの実行ではなく、DB アクセスなどに起因します。

  • フラッシュについては、あちこち検索すると、おそらくベンチマークが見つかります。Haxe は、ジェネリック、タイプ セーフ、関数のインライン化などのコンパイル時の機能を提供し、実行時のパフォーマンスを向上させます。

全体

Haxe による最大のパフォーマンスの向上は、同じ言語の手書きコードと比較することではなく、より高速なプラットフォームに簡単に切り替えることができることによるものです。PHPで書き、nekoに切り替え→大幅な高速化。Flash で書き込み、OpenFL (C++) に切り替える -> 大幅な高速化。

うまくいけば、他の誰かがより関連性の高いベンチマークへのリンクを投稿できます:)

于 2013-08-14T02:02:40.233 に答える