本文介绍了是否可以查看由JVM热点编译器生成的机器代码?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道,是否有可能关注HotSpot编译器在编译给定Java字节码类或方法时生成的实际机器代码?

I was wondering, is it possible to get eyes on the actual machine code that the HotSpot compiler generates when it compiles a given Java bytecode class or method?

推荐答案

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

Yes, with -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly the Hotspot VM can give you that information when it actually executes (compiles) a given bytecode method.

例如,参见 HotSpotInternals Wiki:Print Assembly了解详情.它确实需要一个反汇编程序模块(在Windows上为hsdis-*.dll).

See for example HotSpotInternals Wiki:Print Assembly for details. It does require a disassembler module (hsdis-*.dll on Windows).

使用 JITWatch (但它使用了相同的基础设施).

A bit more comfortable is using JITWatch (but it uses the same infrastructure from HotSpot).

这篇关于是否可以查看由JVM热点编译器生成的机器代码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-15 23:36