查看 Java 程序的本机汇编代码 -- Windows 中最简单的方法是什么?



我试着遵循找到的建议@https://wikis.oracle.com/display/HotSpotInternals/PrintAssembly和http://alexshabanov.com/2011/12/29/print-assembly-for-java/,但没有多大帮助。我在Windows7上运行一个64位JVM,我已经将建议的hsdis-i386.dll文件放在了所有文件夹中——当然还有一个JVM.dll。

我似乎有几个JVM安装(至少我在C:Program Files (x86)JavaC:Program FilesJava中安装了一个),所以我不知道这是否有什么不同。根据我所看到的,使用java-d32会产生一个错误,所以我必须只使用64位版本一。

尝试运行时

java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -server -cp . HelloWorldApp

只有我的

你好,世界!

显示消息,所以似乎什么都没发生。也许问题是hsdis-i386.dll应该有其他名称?

顺便说一句,我不想自己构建任何类型的源文件。

Hotspot在知道什么是重要的之前不会开始编译和优化,而且当你运行这么短的程序时,它没有机会参与进来。给它一些更实质的东西。

最新更新