Unity - 当前版本是否生成本机代码?

Nar*_*rek 6 c# c++ unity-game-engine

在这里,我可以看到Unity文档说它比本机代码慢50%:http://docs.unity3d.com/412/Documentation/ScriptReference/index.Script_compilation_28Advanced29.html

这里说它有一个IL2CPP编译器,它获得编译成本机代码的c ++代码.那么它现在是在创建本机代码,还是速度慢了50%?:) http://blogs.unity3d.com/2015/05/06/an-introduction-to-ilcpp-internals/ http://blogs.unity3d.com/2014/05/20/the-future-of-脚本功能于统一/

Jos*_*son 9

您引用的Unity文档非常陈旧,即使在编写时,我也很想知道这些性能数字.一般来说,衡量和报告的绩效要比50%表达的数字要复杂得多.

如果您想了解有关IL2CPP的更多信息,请查看此博客文章系列.

基于我们在Unity的基准测试,我们看到使用IL2CPP的脚本绑定代码的性能比使用Unity版本的Unity更好.你可以找到一个基准,我们已经发表在这里.

但请注意以下几点:

  • Unity使用旧版Mono运行时(大约2011年).更新版本更好 - 我们正在努力升级运行时.
  • 大多数游戏代码不受脚本限制,通常是GPU绑定的.
  • 生成的C++代码仍然提供托管语言的安全性,因此它会进行数组边界检查.
  • Mono AOT和IL2CPP编译器之间的性能差异将根据平台而有所不同.在某些平台上,Mono AOT编译器生成机器代码以及C++编译器.在其他平台上,情况并非如此.

  • 这是一个了不起的答案. (2认同)