• JVM 垃圾收集算法


    JVM一共有四种垃圾收集算法:标记-清除算法,复制算法,标记-整理算法,分代垃圾收集算法

    1、标记-清除算法

    分为两个阶段:标记和清除阶段。

    这个算法⾸先标记出所有还存活的对象,回收掉所有没被标记的对象

    优点是:实现简单,不需要额外的空间

    缺点就是:

    ① 回收效率低(因为两次扫描,严重浪费时间)

    ② 会产生大量的内存碎片,导致无法给大对象分配内存空间

    2、复制算法

    它将内存区域分为相等的两块,每次只使用其中的一块。

    当正在使用的这一块区域用完了,就将还存活的对象复制到另外那块区域中,然后集中对之前使用的那块进行清理。

    缺点就是:只使用了一半的内存空间,空间利用率地低

    3、标记-整理算法

    这个算法标记出所有存活的对象,然后将他们整理并移动到内存区域的一端。然后清理掉存活对象所占区域边界以外的区域

    优点:不会产生碎片空间

    缺点:需要移动大量对象,处理效率比较低

    4、分代垃圾收集算法

    现在的商业虚拟机一般都采用这种算法。

    这个算法根据对象存活周期,将内存分为几块(新生代-老年代),不同的快采取不同收集算法。

    其中的新生代又详细分为:Eden区,幸存区1(from区),幸存区2(to区).他们的比例默认为:8:1:1

    新生代采用:复制算法

    老年代采用:标记-清除算法 或者 标记-整理算法

    [ 版权声明 ]: 本文所有权归作者本人,文中参考的部分已经做了标记! 商业用途转载请联系作者授权! 非商业用途转载,请标明本文链接及出处!
  • 相关阅读:
    day02 Python 字符串编码
    地坛——我的最爱 (2006-11-12 09:33:18)
    心灵噬血虫 (2007-01-02 12:33:36)
    ArcSDE for oracle10g安装后post的时候出现错误
    创建featureclass,为它赋别名,并移动到数据集下
    feature.shape和feature.shapecopy的区别
    IPoint从自定义的投影坐标系转换到自定义的地理坐标系
    女儿傻 女儿悲 2014-2-23
    自嘲 2014-2-7
    写在双节 2014-2-14
  • 原文地址:https://www.cnblogs.com/gslgb/p/14724270.html
Copyright © 2020-2023  润新知