我已尝试遵循@ 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 应该有其他名称?
顺便说一句,我不想自己构建任何类型的源文件。
最佳答案
Hotspot 在知道什么是重要的之前不会开始编译和优化,并且当您运行这么短的程序时它没有机会启动。给它一些更实质的东西。
关于java - 查看 Java 程序的 native 汇编代码——在 Windows 中最简单的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9449088/