在Android上,原生代码与解释代码中的4x4矩阵多点运算的实际加速是什么



我很好奇Dalvik在乘以4x4浮点矩阵时的性能,而不是在本机中。当我了解如何使用NDK时,我会自己测试这一点(我刚刚通过java启动android),但如果我事先知道没有任何大的差异,我就不会在NDK上浪费任何时间。

有人测试过这个吗?JIT是否很好地隐藏了性能差异?为了创造一个游戏,值得为NDK烦恼吗?(我相信这取决于游戏的复杂性,但我想知道你什么时候会考虑NDK)感谢

有人测试过这个吗?

对不起,我没有。。

"JIT能很好地隐藏性能差异吗?

自android版本2.2(froyo)以来,引入了运行时动态字节码到本机的转换(在java世界中也称为JIT)。如果多次运行,这会影响计算密集型代码路径的性能(这是一个"热点")。Dalvik中实现的JIT是基于跟踪的,据说它的平均性能是典型应用程序的2到5倍。使用JIT会有很大的改进,但我不能确切地告诉你,我认为在你的例子中,性能应该与本机代码相匹配(如果你要使用NDK桥接到本机进行小型计算,则会更好)。有一个关于android 2.2中引入的Dalvik JIT的谷歌IO讨论,这可能会在这里帮助你:https://www.youtube.com/watch?v=Ls0tM-c4Vfo

为了创造一个游戏,值得为NDK烦恼吗?

这在很大程度上取决于游戏的类型和要求。也许你可以把这个问题作为一个单独的问题来问,给出更多与性能方面相关的细节。

最新更新