我正在评估 ARM 的开源和闭源 JVM。特别是,闭源 JVM 可以利用 Jazelle(用于较新 ARM 的 Java 加速)。
您对这项技术有任何经验吗?
(顺便说一句,您使用哪个操作系统?)
我为一家大型无线手机制造商工作。我们的团队正在将 J2ME 移植到基于 ARM 的手机上。我们有两个人在使用 Jazelle;没有操作系统,只是在原始 ARM9 芯片上。遗憾的是,它一直在研究中,因为 JIT 获得了我们需要的性能,而无需支付 Jazelle 的许可费。
如果您接受在没有 JIT 的情况下运行 Hotspot JVM 以编译 C 的 1/10 运行的经验法则。那么,JIT 返回您丢失的 50%,Jazelle 返回您丢失的 60%。这些是非常粗略的估计。这完全取决于正在运行的代码类型。Jazelle 对我们的测试用例的性能稍好一些,因为它处理的情况比 JIT 多。而在少数情况下,JIT 编译为 C-fast。
之前的海报似乎误解了 Jazelle。Jazelle 对 Java 字节码产生类似陷阱的操作。用户必须提供代码片段来处理每个字节码。如果没有这样的片段和查找表,您将获得未实现的异常。