Parallel Collector
A、ParNewGC(新生代),-XX:+UseParNewGC,是Serial的多线程版,
B、ParallelGC(新生代),-XX:+UseParallelGC,多线程版,但是吞吐量优先
C、ParallelOldGC(年老代),-XX:+UseParallelOldGC,ParallelOldGC的FullGC的动作为清空整个heap堆中的垃圾对象,清除Perm区中已经被卸载的类信息,并进行压缩。而ParallelGC的FullGC,是清除heap中的部分垃圾对象,并进行部分的空间压缩。
-XX:ParallecGCThreads
如果CPU core<=8,则为CPU的核数,否则3+(cpu core * 5)/8
悲观策略
在向Eden区申请空间时,如果Eden区不够,那么看当前申请空间是否大于Eden区的一半,如果大于则直接在old区分配,否则触发MinorGC,执行以下判断:
采用Parallel GC的情况下,当YGC触发时,会有两个检查:
1、在YGC执行前,min(目前新生代已使用的大小,之前平均晋升到old的大小) > 旧生代剩余空间大小 ?
不执行YGC,直接执行Full GC : 执行YGC;
2、在YGC执行后,平均晋升到old的大小 > 旧生代剩余空间大小 ? 触发Full GC : 什么都不做。
当old区或者perm区不足时会触发FullGC,如果配置了参数ScavengeBeforeFullGC,则在FullGC之前会先触发MinorGC。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。