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
- sebastienros/jint
- js.hxml
- 実行速度 18.64s
- コンパイル速度 0.263s
Lua - xLua
- lua.hxml
- Tencent/xLua
- 実行速度 1.15s
- コンパイル速度 0.475s
JavaScript - jurassic
- paulbartrum/jurassic
- iOSで動かないので断念
まとめ
- 分かってはいたけど、流石に直接C#は早い
- Jintが思ったより遅くて、xLuaとの差がすごい
- 生成コードに手を出すことはあまりないだろうし、内部が何でもよいならxLuaで良いかなという感じ。