Unity Android编译IL2CPP 对比 Mono

参考

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

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

 

 

从一些其他人的博客和IL2CPP开发人员的博客中可以理解出IL2CPP是未来的趋势。并且现在也在不断的完善中。对于编译时间太长,推测他们可能会像ios采用不剥离模式,运行标准库,到时可能会减少编译时长(猜测)

 

IL2CPP 和 Mono 性能对比

测试机型 Lenovo VIBE

 

      

     Times

          IL2CPP

 

Mono

 

Find                   

 

     10000

 

     36

 

     34

 

GetComponent           

 

     10000

 

     12

 

      6

 

CreatePrimitive           

 

     10000

 

     633

 

     716

 

AddChild                

 

     10000

 

     238

 

     258

 

Mathf.Acos              

 

     10000

 

      0

 

      3

 

AddComponent           

 

     10000

 

     1097

 

     835

 

Resource.Load            

 

     10000

 

     132

 

     134

 

AssetBundle.LoadFormFile   

 

      100

 

     154

 

     192

            

TOTAL

 

 

     2310

 

     2203

 

多次测试数据有变动但波动很小。

Il2cpp 和mono 整体性能差不多。

在 add get component 上 il2cpp劣于 mono, Math上il2cpp 要略强于mono。

 

IL2CPP开发中注意点

和IOS相同,对于C# JIT的东西不允许。

System.Reflection.Emit库中的东西不能使用。

对于外部引用的库文件(自己的或者第三方的),在IL2cpp.exe 生成c++代码时会进行链接,如果代码中这些库是其他平台所需的,或者不能正确引用的,将这些代码注掉或者用平台宏定义包含起来,不然会链接失败。

IL2CPP APK安装包注意点

Il2cpp 第一次安装正常。

在安装过相同包名的后 卸载后再次安装 启动会报错

Failed to extract resources needed byil2cpp

重启手机后没问题。

Il2cpp 覆盖安装未见异常

 

你可能感兴趣的:(Unity Android编译IL2CPP 对比 Mono)