参考文档
https://github.com/liuzhengyang/hsdis
一:下载配置 Hsdis
Linux的前提条件
要在linux上构建hsdis,您需要确保拥有标准构建工具
apt-get install build-essential
执行apt -get命令 提示找不到命令
yum -y install firefox
1. 下载配置 Hsdis
之前是在网站 https://kenai.com/projects/base-hsdis/downloads 可以下载到,但是该网站现已关闭, 在github 上找到一个仓库提供
git clone https://github.com/liuzhengyang/hsdis
cd hsdis
tar -zxvf binutils-2.26.tar.gz
make BINUTILS=binutils-2.26 ARCH=amd64
2.复制 hsdis-amd64.so 文件到 {java_home}/jre/lib/amd64/server
sudo cp build/linux-amd64/hsdis-amd64.so /usr/src/jdk/jdk1.8.0_131/jre/lib/amd64/server
3.输入一下命令验证是否配置成功
Java HotSpot(TM) 64-Bit Server VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output
Loaded disassembler from /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/hsdis-amd64.so
Decoding compiled method 0x00007f3a7110a010:
Code:
[Disassembling for mach='i386:x86-64']
[Entry Point]
[Constants]
...
4.使用 Hsdis 执行代码,输出反汇编内容
javac Test.java
java -server -XX:+UnlockDiagnosticVMOptions -XX:+TraceClassLoading -XX:+PrintAssembly -XX:+LogCompilation -XX:LogFile=live.log Test # A是java文件类名, live.log 是输出的 log 文件
二: JITWatch
1.下载 启动
git clone https://github.com/AdoptOpenJDK/jitwatch
cd jitwatch
./launchUI.sh
2.选择 open log,点击 start
3.点击 sanbox ,选择open,选择要分析的 java 文件,点击 run