特别说明 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的原因是因为在年轻代中没有足够的空间能够存储新的数据了。

  1. PSYoungGen:垃圾回收器名称 说明是年轻代的GC,251511K->5813K(253952K):这个在PSYoungGen括号内,指的是内存。251511K是年轻代回收前内存,5813K是年轻代回收后内存,253952K是年轻代总占用
  2. 299670K->54096K(516096K):这个不在PSYoungGen括号内,说明这是堆内存使用情况 299670K是堆内存GC前,54096K是堆内存GC后,516096K是整个堆内存占用情况
  3. 0.0100888 secs 这个在大GC 括号内,说明是GC的运行时间
  4. [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的发生,让对象尽可能的在年轻代就回收掉,所以这里可以稍微增加一点年轻代的大小