首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓是否会剥夺ARM的Jazelle技术?

安卓是否会剥夺ARM的Jazelle技术?
EN

Stack Overflow用户
提问于 2009-07-20 11:42:43
回答 3查看 9.1K关注 0票数 35

我所看到的理由,我们应该说,“杂种”的Java字节码在Android中是性能。(我怀疑还有另一个原因。)然而,通过更改字节码,他们不是让Jazelle等硬件加速技术变得毫无意义,从而实际上降低了移动Java平台的性能吗?

我知道目标平台是一个基于ARM的移动平台,这似乎与我的直觉相反。虽然它可能会在其他CPU架构上提供更好的性能,但它似乎是对ARM和Jazelle的挑战。

它对Java性能有什么样的定量影响?

它真的提高了性能吗?如果是的话,它是如何提高性能的?

这对其他平台有什么影响?(即x86,mips,yadda,yadda,yadda...)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-20 19:18:18

是的,Dalvik让Jazelle变得一无是处。唯一的问题是,Jazelle从一开始就是有用的,还是90%的营销炒作?一个好的JIT或AOT(提前)编译器往往比尝试使用专门的指令提供更好的性能。Dalvik的基于寄存器的方法可能比传统的java字节码解释器更快,但如果解释器和JIT之间的细微差别。希望Android的下一个版本有一个JIT。

使用最先进的垃圾收集器和优化器编写一个好的虚拟机需要大约5-10年的时间。Sun (和微软)已经花了这些年。谷歌没有。希望他们会继续投资,这样有一天Android Java代码就不会比它应有的速度慢90%。

票数 19
EN

Stack Overflow用户

发布于 2009-07-20 12:37:13

Wikipedia: Dalvik virtual machine

与大多数虚拟机和真正的Java不同,Dalvik VM是基于寄存器的体系结构。

Dalvik针对低内存需求进行了优化,它具有一些与其他标准虚拟机不同的特定特征:

  • 虚拟机被精简以使用更少的空间。
  • Dalvik没有实时编译器。
  • 常量池已修改为仅使用32位索引,以简化interpreter.
  • It使用其自己的字节码,而不是Java字节码。

此外,Dalvik的设计使得一个设备可以高效地运行VM的多个实例。

维基百科编辑:参见Open Handset Alliance。创始成员包括英特尔、摩托罗拉、高通和德州仪器。一年后,ARM于2008年12月加入。因此,我猜这些公司在非会员的时候依赖专有技术是没有意义的,因为他们的目标是创造开源的iPhone/Blackberry竞争对手。

票数 5
EN

Stack Overflow用户

发布于 2009-07-20 14:33:54

实际上,我的印象是Dalvik更多的是为了空间效率而不是执行效率。同样来自维基百科:

未压缩的 .dex文件的大小通常比从相同.class文件派生的压缩的 .jar (Java Archive)小几个百分点。

虽然目前的手机可能会使用支持Jazelle的ARM,但未来并不一定是这样。

同样来自维基百科(警告:传闻):

发布的规范非常不完整,仅足以编写能够支持使用Jazelle的JVM的操作系统代码。声明的意图是只有JVM软件需要(或允许)依赖于硬件接口细节。这种紧密的绑定有助于硬件和JVM可以一起发展,而不会影响其他软件。实际上,这给了ARM控股相当大的控制权,控制哪些JVM能够利用Jazelle。它还阻止开源JVM使用Jazelle。

一旦他们给Dalvik添加了一个JITter,这一切都将是一个没有意义的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1153076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档