在Windows下:
- 下载编译好的 hsdis-amd64.dll (优快云上);或者自己编译(https://blog.youkuaiyun.com/yizishou/article/details/53423409)
- 把编译好的 hsdis-amd64.dll放在 $JAVA_HOME/jre/bin/server 目录下。
- 在控制台运行如下代码即可:
/** * java -XX:+UnlockDiagnosticVMOptions * -XX:+PrintAssembly * -Xcomp * -XX:CompileCommand=dontinline,*Bar.sum * -XX:CompileCommand=compileonly,*Bar.sum * */ public class Bar { int a=1; static int b=2; public int sum(int c){ return a+b+c; } public static void main(String[] args){ new Bar().sum(3); } }
v
在Linux下:
- 编译方法见(https://www.chrisnewland.com/building-hsdis-on-linux-amd64-on-debian-369),只是其中的binutils源要自己找(https://ftp.gnu.org/gnu/binutils/),国内用不了。另外,最终我并没有编译成功,总是出现“gcc -V”和“gcc -qversion”命令找不到的情况。
- 也可以自己下载该文件(https://github.com/jkubrynski/profiling/tree/master/bin)
- 最终产生文件hsdis-amd64.so放入$JAVA_HOME/jre/lib/amd64/server 下。输入和上文同样的java代码即可