浅析JVM 第四篇(java的垃圾收集策略)

来源:互联网 发布:xtream path for mac 编辑:程序博客网 时间:2024/06/06 09:14

可用的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之中的最大好处它不用进行全内存扫描,只需要按照区域来进行扫描即可。

0 0
原创粉丝点击