我正在评估针对 ARM 的开源和闭源 JVM。尤其是,闭源 JVM 可以利用 Jazelle(新型 ARM 的 Java 加速器)。
您有使用这项技术的经验吗?
(顺便问一下,您在其中使用哪个操作系统?)
我曾在一家大型无线手持设备制造商工作。我们的团队正在将J2ME移植到基于ARM的手持设备上。我们有两个人在使用Jazelle,没有操作系统,只是在原始的ARM9硅上运行。可惜的是,由于JIT可以获得所需的性能而无需支付Jazelle的许可费用,因此它仅停留在研究阶段。
如果你接受这样的经验法则:未启用JIT的Hotspot JVM运行速度是编译后C语言的1/10。那么,JIT可以恢复50%的性能损失,而Jazelle可以恢复60%的性能损失。这些都是非常粗略的估计值。它完全取决于正在运行的代码类型。对于我们的测试案例来说,Jazelle的性能略优,因为它处理了更多的情况,而JIT则在少数情况下具有编译后C语言的快速性能。
之前的帖子似乎误解了Jazelle。Jazelle会为Java字节码引发类似陷阱的操作。用户必须提供代码片段来处理每个字节码。如果没有这样的片段和查找表,则会出现未实现的异常。