
方法区:之前称为永久代,后来又称为Metaspace。


https://blogs.oracle.com/poonam/understanding-g1-gc-logs
JDK9用的是G1,之前是CMS
ZGC太新了。

G1:主要关注的是停顿时间
堆内存>6G时
用G1可以<500ms,
可以设置时间
高并发,young到old的晋升很快时,推荐G1



gcviewer工具来看:



假如希望最大停顿时间200ms:


G1追求的是低停顿。
G1会动态调整young和old大小。

G1注意:
(1)一定不要设置young区大小或比例;
(2)停顿时间不要太严格(不能太小)。一般G1小于500ms,但是不要小于100ms或200ms。一般使用100ms或200ms都是可以的。100ms<目标<500ms
减少使用全局变量和大对象;
· 调整新生代的大小到最合适;
· 设置老年代的大小为最合适;
· 选择合适的GC收集器







本文深入探讨G1垃圾回收器的特点与应用,包括其在JDK9后的默认使用,对比CMS与ZGC,强调G1对停顿时间的关注及在高并发场景的优势。文章还提供了G1的配置建议,如避免手动设定young区大小,合理设置停顿时间,并给出减少全局变量与大对象的策略。

被折叠的 条评论
为什么被折叠?



