» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[其他] 安卓虚拟机是什么意思?

posted by wap, platform: Android
引用:
原帖由 @KARUTO  于 2017-6-29 18:35 发表
安卓为了当初的全世界大同计划,采用的JAVA为其应用层的实现方式,而java都是跑在JVM就是java虚拟机里面的。

而且Google自己搞了一套什么所谓的Dalvik virtual machine,这玩意儿效率更低,要打水果的应用,光靠纯虚拟机不行,怎么办呢,Google就在Dalvik里搞了个JNI,所谓的java原生介面,来和其他语言的函数库(主要是c和c++互通),所以基本上JNI在大型游戏和重度应用里早就用的很常见,不过这个只是调用运行层面的东西,JAVA还有一大特点就是程序载入JVM的时候非常缓慢而且消耗大量内存,所以安卓机器祖传普遍需要大内存不足为奇。再者,所谓的调用效率也是可圈可点,以下是别人做的测试。

JNI调用和C++直接调用测试,均for循环1,000,000,000次
JNI调用耗时:6,000ms        6.0ns/次

C++调用耗时:1,400ms        1.4ns/次

单次的时间差应该体现了JNI调用dll的额外时间损耗。这个简单函数的调用效率,C++是JNI的4~5倍。
正常使用差距在纳秒级别?


TOP

发新话题
     
官方公众号及微博