gc日志实例分析


今天小编给大家分享一下gc日志实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。-XX:+PrintGC 输出简要GC日志-XX:+PrintGCDetails 输出详细GC日志-Xloggc:gc.log输出GC日志到文件-XX:+PrintGCTimeStamps 输出GC的时间戳(以JVM启动到当期的总时长的时间戳形式)-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)-XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息-verbose:gc-XX:+PrintReferenceGC 打印年轻代各个引用的数量以及时长-XX:+PrintGC与-verbose:gc [GC (Allocation Failure)61805K->9849K(256000K), 0.0041139 secs]1、GC 表示是一次YGC(Young GC)
2、Allocation Failure 表示是失败的类型
3、68896K->5080K 表示年轻代从68896K降为5080K
4、256000K表示整个堆的大小
5、0.0041139 secs表示这次GC总计所用的时间
在JDK 8中,-verbose:gc是-XX:+PrintGC一个别称,日志格式等价与:-XX:+PrintGC,。不过在JDK 9中 -XX:+PrintGC被标记为deprecated。-XX:+PrintGCDetails [GC (Allocation Failure) [PSYoungGen: 53248K->2176K(59392K)] 58161K->7161K(256000K), 0.0039189 secs] [Times: user=0.02 sys=0.01, real=0.00 secs]1、GC 表示是一次YGC(Young GC)2、Allocation Failure 表示是失败的类型3、PSYoungGen 表示年轻代大小4、53248K->2176K 表示年轻代占用从53248K降为2176K5、59392K表示年轻带的大小6、58161K->7161K 表示整个堆占用从53248K降为2176K7、256000K表示整个堆的大小8、 0.0039189 secs 表示这次GC总计所用的时间9、[Times: user=0.02 sys=0.01, real=0.00 secs] 分别表示,用户态占用时长,内核用时,真实用时。
时间保留两位小数,四舍五入。-XX:+PrintGCTimeStamps 1.963: [GC (Allocation Failure) 61805K->9849K(256000K), 0.0041139 secs]如果加上-XX:+PrintGCTimeStamps那么日志仅仅比1.1介绍的最前面多了一个时间戳: 1.963, 表示从JVM启动到打印GC时刻用了1.963秒。-XX:+PrintGCDateStamps 2019-03-05T16:56:15.108+0800: [GC (Allocation Failure) 61805K->9849K(256000K), 0.0041139 secs]如果加上-XX:+PrintGCDateStamps那么日志仅仅比1.1介绍的最前面多了一个日期时间: 2019-03-05T16:56:15.108+0800, 表示打印GC的时刻的时间是2019-03-05T16:56:15.108+0800。+0800表示是东8区。-XX:+PrintHeapAtGC invocations 表示GC的次数,每次GC增加一次,每次GC前后的invocations相等1、Heap before GC invocations=1 表示是第1次GC调用之前的堆内存状况2、{Heap before GC invocations=1 (full 0): 表示是第1次GC调用之后的堆内存状况-XX:+PrintReferenceGC 此设置 -XX:+PrintReferenceGC可以打印出SoftReference,WeakReference,FinalReference,PhantomReference,JNI Weak Reference几种引用的数量,以及清理所用的时长,该参数在进行YGC调优时可以排上用场。CMS GC日志详细分析 [GC (CMS Initial Mark) [1 CMS-initial-mark: 19498K(32768K)] 36184K(62272K), 0.0018083 secs] [Times: user=0.01 sys=0.00, real=0.01 secs][CMS-concurrent-mark-start][CMS-concurrent-mark: 0.011/0.011 secs] [Times: user=0.02 sys=0.00, real=0.00 secs][CMS-concurrent-preclean-start][CMS-concurrent-preclean: 0.001/0.001 secs] [Times: user=0.00 sys=0.00, real=0.01 secs][CMS-concurrent-abortable-preclean-start]CMS: abort preclean due to time [CMS-concurrent-abortable-preclean: 0.558/5.093 secs] [Times: user=0.57 sys=0.00, real=5.09 secs][GC (CMS Final Remark) [YG occupancy: 16817 K (29504 K)][Rescan (parallel) , 0.0021918 secs][weak refs processing, 0.0000245 secs][class unloading, 0.0044098 secs][scrub symbol table, 0.0029752 secs][scrub string table, 0.0006820 secs][1 CMS-remark: 19498K(32768K)] 36316K(62272K), 0.0104997 secs] [Times: user=0.02 sys=0.00, real=0.01 secs][CMS-concurrent-sweep-start][CMS-concurrent-sweep: 0.007/0.007 secs] [Times: user=0.01 sys=0.00, real=0.01 secs][CMS-concurrent-reset-start][CMS-concurrent-r 香港云主机eset: 0.000/0.000 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]33.125: [GC[DefNew: 4310K->872K(37888K),0.0025925 secs] 4310K->880K(123904K), 0.0009434 secs]100.667: [Full GC [Tenured: 4310K->872K(37888K),0.0149142 secs] 4310K->880K(123904K), 0.0150007 secs] [Times: user=0.01 sys=0.00, real=0.02 secs]1,前面的数字“33.125:” 和 “100.667:”代表了GC发生的时间,这个数字的含义是从java虚拟机启动以来经过的秒数。2,
GC日志开头的“[GC”和“[Full GC” 说明了这次垃圾收集的停顿类型,而不是用来区分新生代GC和老年代GC的,如果有“Full”,说明这次GC是发生了Stop-The-World的,如果调用System.gc()方法所触发的收集,那么在这里将显示“[Full GC (System.gc()”。3,“[DefNew:”、“[Tenured:”、“[Perm:” 表示GC发生的区域,这里显示的区域名成与使用的GC收集器是密切相关的;如果使用Serial收集器中的新生代名为“Default New Generation”,所以显示“[DefNew:”;如果使用ParNew收集器,新生代名称会变为“[ParNew:”,意为“Parallel New Generation”;如果使用Parallel Scavenge收集器,那它配套的新生代称为“PSYoungGen”。,4,
后面的括号内部的“4310K->872K(37888K)”含义是“GC前该内存区域已使用容量–>GC后该内存区域已使用容量(该内存区域总容量)”“0.0025925 secs” 表示该内存区域GC所占用的时间,单位秒。5,方括号之外的“4310K->880K(123904K)”表示“GC前java堆已使用容量”–>“GC后java堆的已使用容量(java堆总容量)”“0.0009434 secs”表示该java堆中GC所占用的时间,单位秒。以上就是“gc日志实例分析”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注开发云行业资讯频道。

相关推荐: win10推送安装如何关闭

本篇内容介绍了“win10推送安装如何关闭”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 1.按【Windows+R】键,打开【运行】,输入【gpedit.ms…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/13 17:58
下一篇 07/13 17:58

相关推荐