用Java for Android编写的程序是否比嵌入到iOS Objective-C中的C中编写的等效程序慢?

2022-09-03 04:53:48

为了确定开始将现有的iOS应用程序(用C语言编写)移植到Android是否合理,我必须估计如果用Java实现,它将有多快。一些问题是Java代码必须多次转换(到字节码,然后使用JIT转换为本机代码)。它可能会对实时属性(响应性)产生负面影响,对吧?

生成的代码的质量如何?它是否以某种方式与gcc / llvm生成的代码相媲美?如果是,您是否参考了比较结果(论文)?


答案 1

问得好。几年前,与本机代码相比,Sun(现在的Oracle)JVM的性能将相形见绌。但事情已经发生了变化

首先,运行 Android 的 VM 不是您的标准 JVM。它是Google专门为移动使用而重写的增强型VM,其中UI性能受到优先考虑。

其次,在过去十年中发生了很多事情...这篇相关文章中的一句话说得好:我们现在有一个更快的VM。Fifteen years ago, all we thought that Java needed to rule the known universe was a faster VM.

最后,有很多关于iOS和Android在性能方面的比较的文章。这是第五个链接,仅用于踢球。还有更多。它归结为几个因素 - 您需要运行哪种类型的代码,您的性能期望是什么,以及您愿意投入多少资金来榨取最大的收益。如果你认为Dalvik是你的瓶颈,你有能力编写原生C /C++并在Android中使用JNI。


答案 2

您无法以这种方式比较性能。您的应用程序将在具有不同性能特征的不同硬件上运行。与硬件的影响相比,java/objective c之间的性能差异很可能可以忽略不计。您应该分析应用程序的瓶颈,并检查目标硬件是否可以支持它。如果它在java中实现并不重要。


推荐