タグ別アーカイブ: ベンチマーク

Haxe vs TypeScript でベンチマーク対決

TypeScriptって速度はどうなの?速いの?ってことが気になったので、HaXeや素のJavaScriptと比較してみました。

比較にはAOBenchを使いました。

比較に使ったプログラム

HaXe版(HaXe2.10 @yoshihiro503さん移植https://github.com/yoshihiro503/aobench_haxe)
TypeScript版(https://github.com/shohei909/TypeScript_AOBench)
JSX版(JSX0.0.2 @kioku_systemkさん移植 http://kioku.sys-k.net/aobench_jsx/)
JavaScript版(http://kioku.sys-k.net/aobench_jsx/)

HaXe版はデッドコード削除を使用するにあたりちょっとだけ改変してあります。TypeScript版はHaXe版を元に書き変えて移植しました。

結果

HaXe TypeScript JSX(修正前) JSX(修正後) JavaScript
Google Chrome (Windows) [ms] 974 995 968 1125 1076
Firefox (Windows) 1544 3698 3766 1604 1649
Browser (Android) 63158 64636 61327 57338 70425
Safari (iOS) 54876 59792 57831 43200 70800
JavaScriptのファイルサイズ [Byte] 6010 8163 7963 17591 6968

HaXeは安定して高速ですね。ファイルサイズも小さくなっています。以前のHaXeはもうちょっと大きいファイルを出力してたんですが、HaXe2.10で強力なデッドコード削除最適化が実装されて、未使用なコードがJavaScriptファイルに反映されなくする–dead-code-eliminationオプションが強化されました。

一方、TypeScriptで出力されたJavaScriptは直訳っぽい素直なコードで読みやすいんですが、あんまり速くありません。基本的にはインライン展開が無い分の差だと思うんですが、気になるのは2倍以上の差がついたFirefoxの結果です。インライン展開されてるはずのJSXでも遅い結果になっています。
続きを読む