MonoTouch性能vs. Objective-C / Java

| 我正在开发多平台游戏引擎,并且正在使用MonoTouch涵盖Android和iPhone。我对使用MonoTouch进行iOS和Android开发的性能方面真的很感兴趣,是否有人知道MonoTouch对使用Java或Objective-C进行相关平台开发的性能会有什么影响(如果有的话)?我是从游戏开发者的角度具体询问的,所以绘制代码之类的事情让我很担心。从我已经看到的单声道应用程序运行良好的角度来看,但是说您在《愤怒的小鸟》的水平(美术作品,声音,物理处理)方面开发了一款游戏,那么它在单声道中的运行情况是否足够好,您不会被认为是与使用平台的本地语言相比有明显的不利之处吗?     
已邀请:
首先,澄清一下:在Android上,代码不是由Java运行时执行,而是由Dalvik(由Google从头开始编写)执行。因此,Java VM性能与该问题无关。 牢记这一点:Android上的大多数程序都不执行本机代码,而是在Dalvik VM(运行已翻译的Java字节码)上运行。 Mono JIT之前已经针对它进行了基准测试,并且始终可以更快地找到它(请查看例如http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html)。 在iOS上,MonoTouch必须先将代码预编译为本机应用程序,然后才能将其安装在Apple设备上(由于许可证限制,这由操作系统实施)。就是说,Objective C编译器和Mono的Ahead of Time编译都使用相同的LLVM后端来生成和优化二进制代码,因此您获得的结果应该几乎相同(Mono有一些内存开销)。 请记住Donald Knuth的一句话:“过早的优化是万恶之源。”编写代码时要牢记性能,但要记住可维护性更为重要。仅在必要时才进行优化(因为通常编译器会做得比您做的更好)。     

要回复问题请先登录注册