java - MonoTouch 性能与 Objective-C/Java

标签 java iphone objective-c mono xamarin.ios

我正在开发一个多平台游戏引擎,并且正在使用 MonoTouch 来覆盖 Android 和 iPhone。我对使用 MonoTouch 进​​行 iOS 和 Android 开发的性能方面非常感兴趣,有谁知道 MonoTouch 对相关平台使用 Java 或 Objective-C 进行开发的性能影响(如果有的话)是什么?我是从游戏开发者的角度专门问这个问题的,所以像绘制代码之类的事情真的让我很担心。从我所看到的单声道应用程序运行良好,但假设你制作了一个愤怒的小鸟级别的游戏(艺术作品,声音,物理处理),它通过单声道运行得足够好以至于你不会被放在一个重要的位置与使用平台的本地语言相比有什么缺点?

最佳答案

首先澄清一下:在 Android 上,代码不是由 Java 运行时执行的,而是由 Dalvik(由 Google 从头编写)执行的。因此,Java VM 性能与此问题无关。

考虑到这一点:Android 上的大多数程序不执行 native 代码,而是在 Dalvik VM(运行翻译后的 Java 字节码)上运行。 Mono JIT 之前已经针对它进行了基准测试,并且一直被发现速度更快(例如检查 http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html )。

在 iOS 上,MonoTouch 必须先将代码预编译为 native 应用程序,然后才能将其安装到 Apple 设备上(由于操作系统强制执行的许可证限制)。也就是说,Objective C 编译器和 Mono 的 Ahead Of Time Compilation 使用相同的 LLVM 后端来生成和优化二进制代码,因此结果你将得到的应该几乎相同(Mono 有一些内存开销)。

请记住 Donald Knuth 的一句话:“过早的优化是万恶之源。”编写代码时要牢记性能,但请记住可维护性更为重要。只应在必要时进行优化(因为编译器通常会比您做得更好)。

关于java - MonoTouch 性能与 Objective-C/Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5698352/

相关文章:

iphone - 向 NSMutableURLRequest 添加参数时出现异常

iphone - Facebook IOS SDK 提要帖子可见性

iPhone iOS如何实例化一个黑白CGColorSpaceRef?

java - 谁有权使用 Google 的 OAuth 2 客户端访问我的应用程序?

java - 在没有main方法的情况下,paint方法如何运行?

java - Nifi ExecuteScript 与 Groovy : OOM exception

ios - UIScrollView 内的 UITextView 不滚动 - Objective c

ios - 无法在 iOS 中将图像 url 分配给 MWPhoto

ios - UISearchDisplayController 如何窃取 UISearchBar 事件

java - sql数据库中存储图像的方法