我已尝试按照@ 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)\Java
中有一个,而C:\Program Files\Java
中有一个),所以我不知道这是否有任何区别。从我所看到的,做一个java -d32会产生错误,所以我必须只使用64位版本。
尝试运行时
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -server -cp . HelloWorldApp
只有我的
显示Hello World!
消息,因此似乎没有发生任何事情。也许问题是hsdis-i386.dll应该有其他名称吗?
顺便说一下,我不想自己构建任何类型的源文件。
答案 0 :(得分:3)
Hotspot不会开始编译和优化,直到它知道什么是重要的,当你运行这么短的程序时,它没有机会开始。给它一些更实质的东西。