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路径下jrebin目录下。

e.g. C:Program FilesJavajdk1.8.0_161jrebin

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

e.g. C:Program FilesJavajdk1.8.0_161jrelib

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

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

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

编译命令如下:

ant编译:ant clean compile test runmaven编译:mvn clean compile test exec:javagradle编译:gradlew clean build run

2.配置运行JITWatch

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

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

1.java classes目录

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

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

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

3.JITwatch简单使用 模块化查看字节码和汇编码

使用topList查看资源占用率

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

更多资料

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

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#loooy.com)删除。
(0)
上一篇 2022年11月10日 09:12
下一篇 2022年11月10日 09:13

相关推荐