最近的需求是统一日志系统,在排查日志类型时发现GC的文件从前未接触过。学习记录如下:
2021-09-28T19:03:37.939+0800: 13.994: [GC (Allocation Failure) [PSYoungGen: 94241K->18904K(116736K)] 292602K->217292K(466432K), 0.0185545 secs] [Times: user=0.03 sys=0.00, real=0.02 secs]
在上述日志中
GC (Allocation Failure) 表示此次GC由资源分配失败引起。
[PSYoungGen: 94241K->18904K(116736K)] 表示新生代的处理情况。(收集前-> 收集后(总大小))
292602K->217292K(466432K), 0.0185545 secs表示堆区垃圾回收前的大小->堆区垃圾回收后的大小(堆区总大小),耗时。
[Times: user=0.03 sys=0.00, real=0.02 secs] 用户态耗时,内核态耗时和总耗时。
从其他途径了解到,可能还存在FULL GC。但是开发环境系统的运行时间不长,空间充足不足以引起FULL GC。
同时在具体实践时,我们应尽量避免发生FULL GC,常见的操作可调大新生代堆区大小,编码时避免内存泄漏,避免产生系统无用但却无法回收的变量。
参考贴:
https://blog.csdn.net/zc19921215/article/details/83029952
https://www.cnblogs.com/yeyang/p/7944899.html