使用JVM的HSDIS插件

在Windows下:

  1. 下载编译好的 hsdis-amd64.dll (CSDN上);或者自己编译(https://blog.csdn.net/yizishou/article/details/53423409)
  2. 把编译好的 hsdis-amd64.dll放在 $JAVA_HOME/jre/bin/server 目录下。
  3. 在控制台运行如下代码即可:
    /**
     * 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下:

  1. 编译方法见(https://www.chrisnewland.com/building-hsdis-on-linux-amd64-on-debian-369),只是其中的binutils源要自己找(https://ftp.gnu.org/gnu/binutils/),国内用不了。另外,最终我并没有编译成功,总是出现“gcc -V”和“gcc -qversion”命令找不到的情况。
  2. 也可以自己下载该文件(https://github.com/jkubrynski/profiling/tree/master/bin)
  3. 最终产生文件hsdis-amd64.so放入$JAVA_HOME/jre/lib/amd64/server 下。输入和上文同样的java代码即可

你可能感兴趣的:(使用JVM的HSDIS插件)