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

时间:2012-02-25 23:33:15

标签: java jvm

我已尝试按照@ https://wikis.oracle.com/display/HotSpotInternals/PrintAssemblyhttp://alexshabanov.com/2011/12/29/print-assembly-for-java/发现的建议,但它没有多大帮助。我在Windows7上运行64位JVM,我把建议的hsdis-i386.dll文件放在所有文件夹中都有一个jvm.dll,只是为了确定。

我似乎有几个JVM安装(至少我在C:\Program Files (x86)\Java中有一个,而C:\Program Files\Java中有一个),所以我不知道这是否有任何区别。从我所看到的,做一个java -d32会产生错误,所以我必须只使用64位版本。

尝试运行时

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

只有我的

  

Hello World!

显示

消息,因此似乎没有发生任何事情。也许问题是hsdis-i386.dll应该有其他名称吗?

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

1 个答案:

答案 0 :(得分:3)

Hotspot不会开始编译和优化,直到它知道什么是重要的,当你运行这么短的程序时,它没有机会开始。给它一些更实质的东西。