头图

实例分享CompileCommand如何查看jit编译(mac环境)!

反汇编命令:

-XX:+UnlockDiagnosticVMOptions
-XX:+PrintAssembly -Xcomp
-XX:CompileCommand=print,*AtomicInteger.incrementAndGet

把这些参数设置到jvm启动参数,但一般首次执行会报错:

Java HotSpot(TM) 64-Bit Server VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output

这是因为缺少hsdis-amd64.dylib导致的,把hsdis-amd64.dylib放到$JAVA_PATH/jre/lib/server/目录下即可:

再次运行代码,即可以看到汇编代码输出:

关于CompileCommand参数,其格式是这样的:

-XX:CompileCommand=command,method[,option]

该参数用于定制编译需求,比如过滤某个方法不做JIT编译,或者打印某个方法汇编代码等。

command选项有如下:

exclude,跳过编译指定的方法

compileonly,只编译指定的方法

inline/dontinline,设置是否内联指定方法

print,打印生成的汇编代码

break,JVM以debug模式运行时,在方法编译开始处设置断点

quiet,不打印在此命令之后、通过-XX:CompileCommand指定的编译选项

log,记录指定方法的编译日志,若未指定,则记录所有方法的编译日志

其他命令,option,help

如上文截图中,-XX:CompileCommand=print,*AtomicInteger.incrementAndGet 即表示把AtomicInteger.incrementAndGet方法生成的汇编代码打印出来。


【我是tin,来自@看点代码再上班,如果觉得文章有用,欢迎关注我呀!】

6 声望
0 粉丝
0 条评论
推荐阅读
为什么私有方法上的Spring Cache注解不生效?
声明:本文摘抄自公众号【看点代码再上班】。目录Spring Cache "错用"错在哪里?从Spring Cache原理解释为什么私有方法不能加缓存从Spring AOP原理解释为什么私有方法上不能加缓存类内部方法调用不支持加缓存结语...

我是tin阅读 1.5k

封面图
Java8的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft32阅读 27.3k评论 1

一文彻底搞懂加密、数字签名和数字证书!
微信搜索🔍「编程指北」,关注这个写干货的程序员,回复「资源」,即可获取后台开发学习路线和书籍来源:个人CS学习网站:[链接]前言这本是 2020 年一个平平无奇的周末,小北在家里刷着 B 站,看着喜欢的 up 主视...

编程指北71阅读 33.3k评论 20

Java11的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft28阅读 19.2k评论 3

Java5的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft13阅读 21.7k

Java9的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft20阅读 15.2k

Java13的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft17阅读 11.1k

6 声望
0 粉丝
宣传栏