Android 是否阉割了 ARM 的 Jazelle 技术?
我认为 Android 中的 Java 字节码“混蛋”的理由是性能。 (我怀疑还有另一个原因。)但是,通过更改字节码,他们难道没有让 Jazelle 等硬件加速技术变得毫无意义,从而实际上降低了 Mobile Java 平台的可用性能吗?
我知道目标平台是基于 ARM 的移动平台,这似乎违反直觉。 虽然它可能会在其他 CPU 架构上为您提供更好的性能,但它似乎对 ARM 和 Jazelle 吐口水。
它对 Java 性能有什么样的定量影响?
它真的能提高性能吗?如果能的话,如何提高性能?
对其他平台有何影响? (即 x86、mips、yadda、yadda、yadda...)
The justification that I've seen for shall we say "Bastardizing" the Java bytecodes in Android was performance. (I suspect there is another reason.) However by changing the byte codes haven't they made hardware acceleration technologies such as Jazelle moot, and thus actually degraded the performance available for a Mobile Java platform?
It appears counter intuitive to me knowing that the target platform is a ARM based mobile platform. While it MIGHT give you better performance on other CPU architectures it seems to spit in the face of ARM and Jazelle.
What sort of quantitative effect does it have on Java performance?
Does it actually improve performance, and if so how?
What's the effect on other platforms? (i.e. x86,mips,yadda,yadda,yadda...)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的,Dalvik 让 Jazelle 毫无用处。 唯一的问题是 Jazelle 一开始有用还是 90% 是营销炒作? 一个好的 JIT 或 AOT(提前)编译器往往比尝试使用专门的指令提供更好的性能。 Dalvik 基于寄存器的方法可能比传统的 java 字节码解释器更快,但解释器和 JIT 之间的差异很小。 希望 Android 的下一个版本具有 JIT。
编写一个具有最先进的垃圾收集器和优化器的优秀虚拟机大约需要 5 到 10 年的时间。 Sun(和微软)度过了那些年。 谷歌还没有。 希望他们能够继续对其进行投资,以便有一天 Android Java 代码不会比应有的速度慢 90%。
Yes Dalvik makes Jazelle useless. The only question is was Jazelle useful to begin with or is it 90% marketing hype? A good JIT or AOT(ahead of Time) compiler tends to give much better performance than trying to use specialized instructions. The register based approach of Dalvik might be faster than a traditional java bytecode interpreter but if the difference in minor between that of an interpreter and that of a JIT. Hopefully one of the next versions of Android has a JIT.
It takes ~5-10 years to write a good virtual machine with state of the art garbage collectors and optimizers. Sun (and Microsoft) have spent those years. Google hasn't. Hopefully they will keep investing in it so that one day Android Java code isn't a 90% slower than it should be.
维基百科:Dalvik 虚拟机:
编辑:参见维基百科:开放手机联盟。 创始成员包括英特尔、摩托罗拉、高通和德州仪器。 一年后,ARM 在 2008 年 12 月加入。因此,我认为这些公司在当时还不是会员时依赖专有技术是没有意义的,因为它们的目标是创建开源 iPhone/Blackberry 竞争对手。
Wikipedia: Dalvik virtual machine:
Edit: See Wikipedia: Open Handset Alliance. The founding member includes Intel, Motorola, Qualcomm, and Texas Instruments. ARM joined an year later in December, 2008. So, I guess it didn't make sense for these companies to rely on a proprietary technology by then non-member, when the goal was to create opensource iPhone/Blackberry competitor.
实际上,我的印象是 Dalvik 更多的是为了空间效率而不是执行效率。 也来自维基百科:
虽然当前的手机可能使用支持 Jazelle 的 ARM,但未来情况不一定如此。
同样来自维基百科(警告:道听途说):
一旦他们向 Dalvik 添加 JITter,这一切都将成为一个有争议的问题。
I was actually under the impression that Dalvik was intended more for space efficiency than execution efficiency. Also from Wikipedia:
While the current phones may use an ARM with Jazelle support, that's not necessarily true going forward.
Also from Wikipedia (warning: hearsay):
Once they add a JITter to Dalvik, it will all be a moot point.