前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 字节码反编译成汇编-使用JITWatch

Java 字节码反编译成汇编-使用JITWatch

原创
作者头像
Java开发者之家
修改2021-05-13 18:10:13
1.3K0
修改2021-05-13 18:10:13
举报
文章被收录于专栏:Java开发者之家Java开发者之家

Java 字节码反编译成汇编

本位以windows环境为前提,JDK版本为Oracle Sun JDK8-64位

Hsdis环境准备

1.下载hsdis-amd64.dylib

下载地址如下:https://github.com/evolvedmicrobe/benchmarks/blob/master/hsdis-amd64.dylib

2.下载hsdis-amd64.dll

下载地址如下:https://github.com/atzhangsan/file_loaded

3.配置hsdis-amd64.dylib和hsdis-amd64.dll

a.将下载好的hsdis-amd64.dll文件放置在JDK路径下\jre\bin目录下。

e.g. C:\Program Files\Java\jdk1.8.0_161\jre\bin

b.将下载好的hsdis-amd64.dylib文件放置在JDK路径下的\jre\lib目录下。

e.g. C:\Program Files\Java\jdk1.8.0_161\jre\lib

4.测试验证是否配置成功

使用命令java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -version验证是否配置成功。如果出现如下所示则说明配置成功。

image-20210414230849483
image-20210414230849483

5.自行构建hsdis(如果你有兴趣的话)

如果你有兴趣自行编译hsdis的话,可以参考如下的几个链接,然后把编译好的文件放在jdk的jre目录下的如上所3述路径。

1.http://www.chrisnewland.com/building-hsdis-on-linux-amd64-on-debian-369

2.http://psy-lob-saw.blogspot.com/2013/01/java-print-assembly.html

JITWatch环境

1.下载JITWatch

下载路径如下:https://github.com/AdoptOpenJDK/jitwatch/releases

如果你有兴趣的话,当然也可以参考官方文档进行编译。

JITWatch链接如下:

https://github.com/AdoptOpenJDK/jitwatch

编译命令如下:

代码语言:txt
复制
ant编译:
ant clean compile test run
maven编译:
mvn clean compile test exec:java
gradle编译:
gradlew clean build run

2.配置运行JITWatch

a.启动,使用java -jar jitwatch-ui-1.4.0-shaded-win.jar启动jitwatch,启动成功后如下所示

image-20210414232505669
image-20210414232505669

b.配置,点击sandbox按钮打开窗口,再点击Configure Sandbox按钮,配置如下几个参数

1.java classes目录

2.java 运行目录为你本地的配置使用的JDK路径

3.java运行参数,添加hsdis的运行参数配置

image-20210414233652204
image-20210414233652204

c.运行,点击open按钮打开需要编译的java代码,点击Run按钮运行得到下图所示

image-20210414232726380
image-20210414232726380
image-20210414234418226
image-20210414234418226

3.JITwatch简单使用

模块化查看字节码和汇编码
image-20210414234700267
image-20210414234700267
使用topList查看资源占用率

在JITWatch窗口点击TopList按钮,即可查看资源占用率。

image-20210414235239556
image-20210414235239556
更多资料

1.https://www.chrisnewland.com/images/jitwatch/HotSpot_Profiling_Using_JITWatch.pdf

2.https://github.com/AdoptOpenJDK/jitwatch/wiki

参考文章

1.利用hsdis和JITWatch查看分析HotSpot JIT compiler生成的汇编代码.https://blog.csdn.net/hengyunabc/article/details/26898657

2.JITWatch Wiki.https://github.com/AdoptOpenJDK/jitwatch/wiki

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java 字节码反编译成汇编
    • Hsdis环境准备
      • 1.下载hsdis-amd64.dylib
      • 2.下载hsdis-amd64.dll
      • 3.配置hsdis-amd64.dylib和hsdis-amd64.dll
      • 4.测试验证是否配置成功
      • 5.自行构建hsdis(如果你有兴趣的话)
    • JITWatch环境
      • 1.下载JITWatch
      • 2.配置运行JITWatch
      • 3.JITwatch简单使用
    • 参考文章
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
    http://www.vxiaotou.com