特别说明 new出来的对象,都放在年轻代中 。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。
2021-11-01T00:29:55.253+0800: [GC (Allocation Failure) [PSYoungGen: 251511K->5813K(253952K)] 299670K->54096K(516096K), 0.0100888 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
Allocation Failure:表明本次引起GC的原因是因为在年轻代中没有足够的空间能够存储新的数据了。开头GC,被称为Young GC 又称 Minor gc。如果是Full GC就是Full GC开头
- PSYoungGen:垃圾回收器名称 说明是新生代的GC,251511K->5813K(253952K):这个在PSYoungGen括号内,指的是内存。251511K是年轻代回收前内存,5813K是年轻代回收后内存,253952K是新生代总占用
- 299670K->54096K(516096K):这个不在PSYoungGen括号内,说明这是堆内存使用情况 299670K是堆内存GC前,54096K是堆内存GC后,516096K是整个堆内存占用情况
- 0.0100888 secs 这个在大GC 括号内,说明是GC的运行时间
- [Times: user=0.01 sys=0.00, real=0.01 secs]:分别表示用户态耗时,内核态耗时和总耗时 是对签名GC运行时间的详细描述
2022-03-16T05:07:39.103+0800: [Full GC (Ergonomics) [PSYoungGen: 245760K->96229K(253952K)] [ParOldGen: 262139K->261992K(262144K)] 507899K->358221K(516096K), [Metaspace: 85763K->85763K(1128448K)], 0.3332533 secs] [Times: user=1.10 sys=0.00, real=0.33 secs]
Ergonomics :网上说法:负责自动的调解gc暂停时间和吞吐量之间的平衡,然后你的虚拟机性能更好的一种做法。
尽量避免Full GC的发生,让对象尽可能的在年轻代就回收掉,所以这里可以稍微增加一点年轻代的大小。
所有类型的GC都会STW,也就是Stop The World,也就是停止所有线程,只保留垃圾回收线程!
特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!