java编译器的执行模式作者:曾 彬

我们可以使用如下命令,查看当前java编译器和编译器模式:

zengbin@zengbindeMacBook-Pro ~ % java -version

java version "1.8.0_191"

Java(TM) SE Runtime Environment (build 1.8.0_191-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

HotSpot是当前虚拟机,运行的模式是64-Bit Server服务模式,采用的编译模式是mixed mode混合编译

mixed mode:混合模式中,部分代码会被解释执行,部分可能被编译执行,JVM决定函数是否需要编译执行的依据是判断该函数是否为「热点代码」

,如果函数被调用的频率很高,那就是热点代码,热点代码回被编译执行。

函数执行的效率上:「编译执行」 > 「解释执行」

我们可以通过以下命令修改java的执行模式为编译执行:

zengbin@zengbindeMacBook-Pro ~ % java -Xcomp -version

修改为解释执行:

zengbin@zengbindeMacBook-Pro ~ % java -Xint -version

修改为混合执行:

zengbin@zengbindeMacBook-Pro ~ % java -Xmixed -version