【发布时间】:2018-11-13 18:26:26
【问题描述】:
当 Java 方法被 JIT 编译并开始运行 JIT 编辑的本机代码时:
- 堆栈空间是否与之前在解释器模式下运行的堆栈空间相同?
- 在 JIT 模式下运行时,PC 计数器是否仍在更新?如果有,怎么做?
(假设我们使用的是 OpenJDK)。
【问题讨论】:
当 Java 方法被 JIT 编译并开始运行 JIT 编辑的本机代码时:
(假设我们使用的是 OpenJDK)。
【问题讨论】:
堆栈空间是否与之前在解释器模式下运行的堆栈空间相同?
调用栈是一样的。换入 JIT 代码时,它不会重建堆栈。
然而,值堆栈可以分配给寄存器,因此不在本机代码中维护。
在 JIT 模式下运行时,PC 计数器是否仍在更新?如果有,怎么做?
CPU 的 PC 计数器在本地模式下使用。虚拟寄存器在本机优化代码中是概念性的。
【讨论】: