我想知道使用与用于编译的JDK相同的JRE是否重要。
例如,我使用OpenJ9(v12)进行编译,然后使用Hotspot(v12)运行服务器。
会出现什么问题?性能如何?
我要不要
或者我可以混用 -JDK OpenJ9 / JRE热点 -JDK Hotspot / JRE OpenJ9
仅JRE会影响性能吗?还是两者都有?
答案 0 :(得分:2)
OpenJ9和Hotspot是Java虚拟机(JVM)的2种实现,而JVM又是JDK的一部分
JDK OpenJ9和JDK Hotspot是随不同的JVM打包的OpenJDK,必须正确,它们都生成相同的字节码:snapShotChanges
它们之间的区别在于字节码的运行方式,简而言之,存在3种差异
性能影响只能通过尝试来确定,这取决于应用程序的性质。
答案 1 :(得分:0)
您应该期望这两个JDK生成相同的字节码,因为它们都使用来自OpenJDK的相同的Java编译器。正如lolacoco所说,由于VM和GC的实现方式不同,这些差异将在运行时出现。即使您使用其他编译器(例如eclipse IDE中的编译器)生成了字节码,该字节码也应在任何VM上运行。