Unity Android编译IL2CPP 对比 Mono
2017-02-23 10:09
267 查看
参考
https://zhuanlan.zhihu.com/p/19972689?refer=indieace
https://blogs.unity3d.com/cn/author/josh/
从一些其他人的博客和IL2CPP开发人员的博客中可以理解出IL2CPP是未来的趋势。并且现在也在不断的完善中。对于编译时间太长,推测他们可能会像ios采用不剥离模式,运行标准库,到时可能会减少编译时长(猜测)
IL2CPP 和 Mono 性能对比
测试机型 Lenovo VIBE
多次测试数据有变动但波动很小。
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 覆盖安装未见异常
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 编译报错解决
- Windows 下使用 mingw+msys 交叉编译 Android Unity Mono
- Unity 3D Android对dll加密和重编译mono源码进行解密
- Unity 3D Android对dll加密和重编译mono源码进行解密
- Android分布式编译学习(四)各种编译测试对比表 —— Ubuntu12.04上部署distcc分布式编译
- unity mono 编译
- 编译unity-mono( 写给超级初学者的朋友)
- 编译unity-mono( 写给超级初学者的朋友)
- Unity编译Android的原理解析和apk打包分析
- Unity在mono下编译失败~
- Unity编译Android的原理解析和apk打包分析
- Unity防破解 —— 重新编译mono
- unity mono 库编译笔记
- Unity4.6.3编译android版本报错,Creating directory failed
- 在mac上交叉编译mono的脚本,mac x64,iphone armv7,iphone armv7s,android armv7-a
- unity 安卓热更新代码的最新方法: 通过Mono加载新的重新编译的dll
- Jenkins + Unity + Android构建基于Unity的自动编译环境
- Unity引擎编译后的程序是如何运行在iOS和Android上
- unity编译Android工程时链接不上服务器,可能是因为unity没有开通网络权限
- 编译 Windows 版本的 Unity Mono(2017-03-12 20:59)