Haxeで書いたコードをUnity上で動かす時、どれが一番早いのかベンチマーク取ってみた

C#のビルドの長さに耐えられなくなったので、
Haxeで書いたコードをUnity上で動かして、ビルド時間を短くしたい!!!と思い色々調査しています。
今回が、第一回目。

Haxeは色んな言語を出力出来るため、Unity上で動かす方法も色々あります。
ここに乗っていない方法があれば、ぜひtwitterで教えて下さい。

手順

https://github.com/kyubuns/HaxeUnityBenchmark/blob/master/Haxe/src/bench/Main.hx
このめちゃくちゃ適当に書いたHaxeのコードを元にします。
実行速度は、iPhone11Pro上でtest1とtest2のメソッドを5000回ずつ実行した時の時間を計測しました。
コンパイル速度は、手元のマシン ( MacBookPro2018 ) で何回か実行して平均っぽい値を書いてます。

結果

Csharp

  • HaxeからCsharpのDLLを作ってUnityに放り込む
  • cs.hxml
  • 実行速度 0.00s
  • コンパイル速度 1.201s

JavaScript - Jint

Lua - xLua

JavaScript - jurassic

まとめ

  • 分かってはいたけど、流石に直接C#は早い
  • Jintが思ったより遅くて、xLuaとの差がすごい
  • 生成コードに手を出すことはあまりないだろうし、内部が何でもよいならxLuaで良いかなという感じ。

実験に使ったコード

github.com