新生区的伊甸园区GC日志分析年老代GC日志分析:
在上一篇文章中,我们通过代码运行结果,查看到JVM的堆内存逻辑上分区是三部分,物理上分区是2部分,以及是新生代分区三部分,占比分布是8/1/1。而且我们还通过代码和堆JVM参数配置,制造出了OOM异常。下面我们就来分析GC回收器的日志信息。
先来看看,OOM后,GC详细日志信息:
新生区的Eden区的GC,叫法:GC或者是YGC或者是MinorGC或者是轻GC
我们复制一条来分析:
[GC (Allocation Failure①) [PSYoungGen: 1877K②->472K③(2048K④)] 3697⑤K->2835K⑥(7680K⑦), 0.0010223⑧ secs] [Times: user=0.00⑨ sys=0.00⑩, real=0.00 secs]
分段说明:
1 :GC的类型;
2 :YongGC前新生代的内存占用量
3 :YoungGC后新生代的内存占用量;
4 :新生代总内存大小;
5 :YoungGC前JVM堆内存占用量;
6 :YoungGc后JVM堆内存使用量;
7 :JVM堆内存总大小;
8 :YoungGC耗时
9 :YoungGC用户耗时;
10 :YoungGC系统耗时
11 :YoungGC实际耗时
年老代GC的叫法:Full GC或者FGC或者MajorGC或者重GC
同样,我们拿出OOM之前的一条GC日志进行分析
[Full GC (Ergonomics①) [PSYoungGen②: 96K③->0K④ (2048K⑤)] [ParOldGen⑥: 5094K⑦->4007K⑧ (5632K⑨)] 5190K⑩->4007K十一 (7680K十二), [Metaspace十三: 3314K十四 ->3314K 十五(1056768K十六)], 0.0074234 secs十七] [Times: user=0.08十八 sys=0.01十九, real=0.01 secs二十]:
标志说明:
1 :GC类型
2 :Young区
3 :GC前Young区内存占用
4 :GC后Young区内存占用
5 :Young区总大小
6 :Old区
7 :GC前Old区内存占用
8 :GC后Old区内存占用
9 :Old区总大小
10 :GC前堆内存占用
11 :GC后堆内存占用
12 :JVM堆内存总大小
13 :元空间区
14 :GC前占用内存
15 :GC后占用内存
16 :元空间总大小
17 :GC耗时
18 :用户耗时
19 :系统耗时
20 :实际耗时
如下图:
接下来,我们继续学习的是JVM垃圾回收的四种算法了。欢迎大家和凯哥(凯哥Java:kaigejava)继续一起学习:引用计数算法、复制算法、标记清除、标记压缩这四种算法。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.