JDK在ARM嵌入式系统中性能差异为什么这么大
发布网友
发布时间:2022-04-26 09:34
我来回答
共1个回答
热心网友
时间:2022-06-26 21:07
如果题主用的平台是ARMv7,那么Oracle JDK有Java SE版,也有Java SE Embedded版可以在上面运行。这两者中的JVM都是HotSpot VM,里面都是标准配备。
而目前在已经整合进主干的代码里,OpenJDK只有Zero VM可以在ARMv7上运行,这不是标准的HotSpot VM,而是一个实现得比较粗糙的、为了简易跨平台而牺牲了性能的实现。拿这个跟标配HotSpot VM比当然比不过。如果是说AArch64,则Oracle JDK有一套私有实现,OpenJDK里有一套Red Hat/Linaro贡献的开源实现,两者不是同一个东西。虽然都是标配HotSpot VM,但Oracle版还是更优化一些,开源版仍需努力…ARMv7上还有若干其它情况。
一种是Red Hat的另一个OpenJDK port,叫做microJIT,专攻资源非常受限的场景——实现较简单,性能不如标配HotSpot VM;另一种是最近正在如火如荼的开发中的、跟Java SE Embedded版同级别的标配HotSpot VM的开源port,Linaro抢先发布消息,而鄙司(Azul Systems)也在大力投入开发资源,产品名为Zulu Embedded。这个到明年中会有更多消息。