• 垃圾收集算法


    标记-清除算法

      顾名思义,首先标记所有需要回收的对象,然后统一回收所有被标记的对象

      缺点:

        1.标记和清除的效率都不高

        2.标记清除后会产生大量的内存碎片

    复制算法

      内存按容量划分为大小相等的两块,每次只使用其中一块内存,当其中一块内存使用完后,将还活着的对象复制到另一块内存上,然后把已使用的内存空间一次性清除掉,这样内存分配时就不用考虑内存碎片的情况,实现简单,运行高效,但是会浪费一半的内存。现在一般是9:1,这样就只会浪费10%的内存空间,但是需要有其他的内存空间进行分配担保。

    标记-整理算法

      复制算法在对象存活率较高时要进行较多的复制操作,效率会降低。所以老年代不会使用这种算法。

      标记-整理算法的标记过程和标记-清除算法一样,后续是先将存活的对象向一段移动,然后清理掉端边界以外的内存,这样在内存分配时也不用考虑内存碎片的问题。

    分代收集算法

      这种算法没用新的思想,只是根据内存的存活周期内存分为新生代和老年代,新生代对象的存活率较低,使用标记-清除算法或者标记-整理算法,老年代的存活率较高,使用复制算法。

  • 相关阅读:
    Sublime Text 无法使用Package Control或插件安装失败的解决方法
    phpstorm破解
    require
    在线支付
    解决华为手机用rem单位,内容超出屏幕宽度问题
    JS如何判断是不是iphoneX
    iPhoneX页面安全区域与内容重叠问题
    .NET 大数据量并发解决方案
    js 弹出div窗口 可移动 可关闭
    colgroup 整行变色
  • 原文地址:https://www.cnblogs.com/yu-xia-zheng-ye/p/13645578.html
Copyright © 2020-2023  润新知