经验分享

使用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

原创不易,完成人机校验,阅读全文

相关推荐