本文目前只介绍到windows,如果以后有需要会放上其他操作系统的库文件。
Windows
- 戳这里下载hsdis.dll ,提取码:
85of - 将
hsdis.dll放入jdk/bin/server目录下,如图所示:

- 在执行java程序时加上以下参数:
-server,表示运行在服务器模式下-Xcomp,表示永远以编译模式运行-XX:-Inline,表示禁止内联优化-XX:+UnlockDiagnosticVMOptions,表示解锁诊断参数-XX:CompileCommand=<ARG>,*<CLASS_NAME>.<METHOD_NAME>,仅针对指定的某一段输出汇编<ARG>,有print、option<CLASS_NAME>,即要分析的类名<METHOD_NAME>,该类中的某个方法
-XX:+PrintAssembly <CLASS_NAME>,输出该程序的全部汇编<CLASS_NAME>,要分析的类名
比如我现在有这样一段程序:
public class VolatileApp {static volatile boolean flag = false;public static void main(String[] args) {test();}public static void test(){flag = false;}}
我要输出 test() 方法的汇编的话,需要这样子写:
java -server -Xcomp -XX:+UnlockDiagnosticVMOptions -XX:-Inline -XX:CompileCommand=print,*VolatileApp.test
最后输出如下所示的文本内容:
