java - 查看 Java 程序的 native 汇编代码——在 Windows 中最简单的方法是什么?

标签 java jvm

我已尝试遵循@ 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/

相关文章:

java - JVM 消耗 100% CPU,大量 GC

java - 当 Sprite 位于特定位置时,如何将其移除?

java - 为什么 MainActivity.this 返回 null?

java - 字符串数组等于 Cursor.getstring() 给我 NullPointer 异常

java - Tomcat 内存消耗

javascript - 方法链接会在堆栈中创建中间变量吗?

java - 在 PlayFramework 中测试 WebSocket

java - 在Java中按行总和交换二维数组中的行

java - JVM:LocalVariableTable 中的索引 1 无效

java - JIT - 微优化 - if 语句消除