Ubuntu JAVA输出汇编代码

有时,我们想要看看我们写的代码,对应的汇编代码到底是什么,就用到了这个.

那么如何实现呢?

在通过java命令运行程序时,加入-XX:+PrintAssembly参数即可,如果是Product版本的JVM,那么还需要在上面的那个参数前面加上-XX:+UnlockDiagnosticVMOptions.

比如,我使用下面的命令来运行一个测试程序:

java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly TestTreeSet

如果你是使用的Oracle JDK,那么很不幸,你可能会遇到这么一个错误:

Could not load hsdis-amd64.so; library not loadable; PrintAssembly is disabled

这咋整?

对于Linux,我们可以去这里下载linux-hsdis-amd64.so,然后将其重命名为hsdis-amd64.so,然后移动到$JAVA_HOME/jre/lib/amd64/中.

然后再运行上面的命令就可以了.

我们的测试程序的源代码为:

输出的汇编代码太多,这里我们只贴出一部分:

需要注意的是,这只是linux版本的解决方案,如果你是使用的windows版本,那么请自行寻找解决方案.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容