JVM逐步模拟器

时间:2018-11-19 20:40:24

标签: jvm bytecode

是否有一个免费的JVM实现,可以查看Java虚拟机不同部分(例如,调用堆栈,堆)的内容并逐步执行程序?

1 个答案:

答案 0 :(得分:0)

一旦JIT将字节码编译为本地代码,VM寄存器和堆栈就没有什么意义了。

我将使用您的调试器来逐行查看Java程序在做什么。字节码是用于虚拟机的,而不是用于实际的字节码,并且JVM不必从字面上遵循虚拟机,而只需遵循程序即可。

JIT可以

  • 使用CPU拥有的许多寄存器,而不是使用纯堆栈。
  • 内联代码而不是执行方法调用。
  • 删除它确定未使用的代码。
  • 将对象放置在堆栈上。
  • 不同步仅在本地方法中使用的对象。

JITWatch

是查看代码如何从字节码转换为机器码的好工具。