10 执行引擎
1. 解释器、JIT编译器
╰─➤ java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
(base) ╭─nohi@nohis-MacBook-Pro.local ~
╰─➤ java -Xcomp -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, compiled mode)
(base) ╭─nohi@nohis-MacBook-Pro.local ~
╰─➤ java -Xint -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, interpreted mode)
Server VM 为服务器模式,64位JDK为server,无需指定
mixed 为解释器、JIT编译器混合模式
- 通过 -Xint -Xcomp指定解释器、编译器模式
- -Xmixed: 采用混合模式
解释器 编译器 编译 快 慢 运行 解释执 编译执行 响应 即使响应 编译完成后响应 运行 运行较慢 运行机器指令,更快
2. 热点代码
- -XX:CompileThreshold
- 衰减 半衰周期
3. AOT编译器
- AOT静态提前编译器,程序运行产将字节码转换为机器码
- JIT为程序运行期间,将字节友转换为可在硬件上直接运行机器码
- 优点
- 直接编译成机器指令,运行速度慢
- 缺点
- 编译慢
- 丧失部分java动态性
- 实验阶段,目前只支持Linux64位