1. ホーム

Unity Androidのコンパイル IL2CPPとMonoの比較

2022-03-16 09:41:16

参考文献

https://zhuanlan.zhihu.com/p/19972689?refer=indieace

https://blogs.unity3d.com/cn/author/josh/

他の人のブログやIL2CPPの開発者のブログから、IL2CPPが未来であることが理解できるはずです。そして、現在も改良中です。コンパイル時間が長すぎることについては、iosのようにノーストリップ・モードを採用し、標準ライブラリを実行することで、コンパイル時間を短縮できるかもしれないということです(憶測ですが)。

IL2CPPとMonoの性能比較

テストモデル Lenovo VIBE

<テーブル

     時代

          IL2CPP

モノ

探す                   

     10000

36

34

GetComponent           

     10000

     12

 6

CreatePrimitive           

     10000

633

     716

子プロセスの追加                

     10000

238

     258

Mathf.Acos              

     10000

0

      3

AddComponent           

     10000

     1097

835

リソース.ロード            

     10000

132

     134

AssetBundle.LoadFormFile   

      100

154

     192

TOTAL

     2310

2203

データは変化していますが、複数のテストを行ってもほとんど変動していません。

Il2cppとmonoは全体的に似たような性能です。

il2cppはmonoに比べadd get componentで劣り、il2cppはmonoに比べMathで若干優れています。

IL2CPP開発における注意点

IOSと同様、C#のJIT化は禁止されています。

System.Reflection.Emitライブラリのものは使用できません。

外部から参照されるライブラリファイル(自作またはサードパーティ製)については、IL2cpp.exeがc++コードを生成する際にリンクされます。これらのライブラリがコード内の他のプラットフォームで必要とされる場合、または正しく参照されない場合、それらをコメントアウトするか、プラットフォームマクロでインクルードするか、またはリンクは失敗します。

IL2CPP APKインストーラに関する注意事項

Il2cppは初回で正常にインストールされます。

同じパッケージ名でインストールした後、アンインストールして再度インストールすると、起動時にエラーが発生する

byil2cpp が必要とするリソースの抽出に失敗しました。

問題なく携帯電話を再起動しました。

Il2cpp オーバーライド インストール 例外なし