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位
上次更新:
贡献者: NOHI