虚拟机及垃圾收集器日志
在JDK 9以前,HotSpot并没有提供统一的日志处理框架,虚拟机功能模块的日志开关分布在不同的参数上,日志级别、循环日志大小、输出格式、
重定向等设置在不同功能上都要单独解决。直到JDK 9,这种混乱不堪的局面才终于消失,Hot Spot所有功能的日志都受到了“-Xlog”参数上。
1. 查看GC基本信息
在JDK 9之前使用-XX: +PrintGC,JDK 9后使用-Xlog:gc
image-20200220135157858.png2. 查看GC详细信息
在JDK 9之前使用-XX:+PrintGCDetails,在JDK 9之后使用-Xlong:gc*,用通配符 * 将GC标签下所有细分过程都打印出来,如果把日志级别调整到Debug或者Trace,还能获得更多细节信息:
[图片上传失败...(image-e2fd04-1585584083744)]
3. 查看GC前后的堆、方法去可用容量变化
在JDK 9之前使用-XX:+PrintHeapAtGC,在JDK 9之后使用-Xlog:gc+heap=debug
[图片上传失败...(image-89a0d6-1585584083744)]
4. 查看GC过程中用户线程并发时间以及停顿的时间
在JDK 9之前使用-XX:+PrintGCApplicationConcurrentTime以及-XX:+PrintGCApplicationStoppedTime,在JDK 9之后使用 -Xlog:safepoint
[图片上传失败...(image-7b2de-1585584083744)]
5. 查看收集器Ergonomics机制自动调节的相关信息
(自动设置堆空间各分代区域大小、收集目标等内容,从Parallel收集器开始支持)。在JDK 9之前使用-XX:+PrintAdaptive-SizePolicy,JDK 9之后使用-Xlog:gc+ergo*=trace
网友评论