[英]Is it possible to view the machine code generated by the JVM hotspot compiler?
[英]Does the Hotspot JVM Compile the code to machine code or simply runs it
为了简化问题,让我们假设在我们的JRE中,我们有一个不使用JIT的Hotspot JVM实现。 意味着我们不会预编译机器代码。
我试图理解,JVM遇到字节代码时,解释器是否使用Hotspot编译器将代码编译为机器代码,然后JVM才能运行代码? 还是由于JVM具有与每个字节代码命令相对应的某种本机方法,解释器是否仅运行代码?
意味着我们不会预编译机器代码。
您上面的句子表明您对JIT编译器是误解。 它不会提前编译代码,而是及时编译,因此得名。
这使其余问题更难以理解,因为“ HotSpot编译器”是JIT编译器。
但是,为您总结一下:在正常情况下,HotSpot首先解释字节码,然后JIT编译那些运行时分析数据表明它们是“热点”的片段,这些片段经常被执行(默认阈值为10,000通过一段代码)。
如果禁用JIT编译,则HotSpot实际上只会解释所有Java字节码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.