第一部分是内存信息,这里可以获取到GC的不同阶段及耗时情况、GC的停顿时间、GC的分代大小等配置信息,能够查看到对象分配,包括TLAB栈上分配情况,以及对象统计信息等等。

第二部分是代码信息,可以分析出热点的类、热点的方法、热点的调用树、运行时的异常信息、编译情况包括OSR栈上替换等信息,以及类的加载与卸载情况。

第三部分是线程信息部分,可以分析到:热点的线程、线程的争用情况、线程的等待时间、以及锁相关的信息。

第四部分是IO信息部分,可以获得收集期间的磁盘IO,也就是文件读写信息,以及网络IO等信息。

最后一部分系统信息可以获取到操作系统信息、进程相关信息以及环境变量等信息。

总结一下:JMX和JFR都可以获得JVM运行的信息,JMX主要用来对JVM进行监控与管理,通过扩展Mbean支持自定义的管理能力。JFR主要用来对JVM运行信息进行周期性采集,用来对运行状况进行分析。


巅峰小词典
948 声望1.3k 粉丝

百无一用是书生,春鸟秋虫自做声。