【问题标题】:Is it possible to view the machine code generated by the JVM hotspot compiler?可以查看JVM热点编译器生成的机器码吗?
【发布时间】:2014-07-12 23:44:49
【问题描述】:

我想知道,当 HotSpot 编译器编译给定的 Java 字节码类或方法时,是否可以看到实际的机器代码?

【问题讨论】:

  • 即使是……也无法阅读。
  • 我实际上并不想用它来提高性能,只是为了关注计算机体系结构课程的实际机器代码。
  • 虽然有3rd-party tools这样的编译,但这不是正常情况,除非你的询问是关于JIT编译的。
  • 我的询问只是为了看看实际的机器代码来描述不同的级别。

标签: java bytecode machine-code


【解决方案1】:

是的,使用-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly,Hotspot VM 可以在实际执行(编译)给定字节码方法时为您提供该信息。

详情请参见HotSpotInternals Wiki:Print Assembly。它确实需要一个反汇编模块(Windows 上的 hsdis-*.dll)。

使用JITWatch 会更舒服一些(但它使用与 HotSpot 相同的基础架构)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-22
    • 2020-12-13
    • 2010-09-13
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多