使用hsdis与jitwatch查看JIT后的汇编码
一、摘要 之前在《Javaclass文件结构(实例篇)》这一篇文章中讲解了我们通过javap命令查看编译成class的字节码文件,字节码是JVM执行需要使用到的文件,但是cpu执行的应该是汇编指令;那么,我们应该如何来看JIT之后的汇编码呢?如果我们能够通过工具来阅读汇编指令,这个将有利于我们从操作系统或者更底层的角度来分析我们的Java程序。本文将从hsdis和jitwatch两个工具的角度来分
一、摘要
之前在《Java class文件结构(实例篇)》这一篇文章中讲解了我们通过javap命令查看编译成class的字节码文件,字节码是JVM执行需要使用到的文件,但是cpu执行的应该是汇编指令;那么,我们应该如何来看JIT之后的汇编码呢?如果我们能够通过工具来阅读汇编指令,这个将有利于我们从操作系统或者更底层的角度来分析我们的Java程序。本文将从hsdis和jitwatch两个工具的角度来分析,怎么样阅读JIT之后的汇编码。
二、使用hsdis生成程序执行生成的jit汇编码日志
这里将不讲述hsdis怎么安装,大家自行google或者百度下;我是直接将hsdis-amd64.dll文件放到我的jdk1.8.0_144\jre\bin\server路径下,如图:

接下来给一个小段的程序为例,来生成该程序的JIT之后的汇编码日志文件:
/**
* <Description> JVM参数: -server -XX:+UnlockDiagnosticVMOptions -XX:+TraceClassLoading -XX:+PrintAssembly -XX:+LogCompilation -XX:LogFile=live.log<br>
*
* @author Sunny<br>
* @version 1.0<br>
* @taskId: <br>
* @createDate 2019/01/21 15:37 <br>
* @see com.sunny.concurrent.hsdis <br>
*/public class SimpleInliningTest {
private int count = 0;
publi原创不易,完成人机校验,阅读全文