可用的GC收集方式
年轻代GC收集策略:
串行GC(Serial Copying)
并行回收GC(Parallel Scavenge)
并行GC(ParNew)老年代GC收集策略:
串行GC(Serial MSC)
并行GC(Parallel Msc)
并发GC(CMC)
使用并行的操作可以调整cpu数量测试:
默认GC收集策略
可以看出年轻代使用的并行回收GC,老年代使用的并行GC。
使用串行GC:
使用(CMS)GC:
此时如果使用了CMS的处理操作,则年轻代使用传统的并行GC回收策略,而老年代使用CMS,这样对于整个程序的暂停时间会非常的短暂,适合于相应速度快程序运行。
注意:
如果你的程序没有特别迅速要求的话,建议就使用默认的GC策略。但是以上的这些GC策略都是最为原始的GC策略。所有的GC策略都有一个问题:都需要扫描全部子内存。
G1收集器
G1收集器是jdk1.7之后出现的,它没有化分老年代,年轻代等内存空间,所有的内存区域就是一块但是划分出不同的子区域。但是其本身依然也是在小范围内要进行年轻代与老年代的区分,也就是说依然会采用不同的GC方式来处理不同的区域。对于老年代的处理流程不一样,因为任何时候如果要想标注老年代的不用内存空间,都需要进行一些暂停,而G1之中的最大好处它不用进行全内存扫描,只需要按照区域来进行扫描即可。