zoukankan      html  css  js  c++  java
  • 垃圾回收算法

    1.引用计数法

    在给每个对象赋值的时候,增加一个标记,按照标记清除

    缺点:循环引用的对象,无法清除

    2.复制算法

    把内存平均分成两部分,每次只会使用其中的一部分,当这块内存满时,就会将存活的对象放入另一块内存,将另一块内存全部清理,依次循环

    缺点:浪费内存空间,永远有一块内存都是空的(to区)

    优点:不存在内存碎片

    3.标记清除

    对每个对象存储一个标记位,记录对象的存活状态,对死亡的对象进行清除

    缺点:扫描两次浪费时间,会存在内存碎片

    优点:不需要额外的内存空间

    4.标记整理

    第一阶段跟标记算法一样,对每个对象存储一个标记位,记录对象的存活状态,不同的是第二个阶段,不会直接清除掉死亡的对象,而是将存活的对象整理一下,放入另一块空间,再将剩下的对象全部清除

    缺点:整理需要再一次消耗资源,浪费时间

    优点:不会产生内存碎片

    没有最好的算法,只有最合适的算法,因此GC又被称为分代收集算法。

    年轻代:存活率低,一般使用复制算法

    老年代:区域大,存活率高,一般使用标记清除+标记整理混合使用

  • 相关阅读:
    vue2.0实践的一些细节
    数据库之一
    angularJS实用的开发技巧
    移动端开发的一些技巧总结(2)
    vue入门学习(基础篇)
    JS继承之原型继承
    css3动画
    使用 xlsx 前端解析 excel 文件
    webpack4 打包 library 遇到的坑
    roc-charts 开发笔记:JS广度优先查找无向无权图两点间最短路径
  • 原文地址:https://www.cnblogs.com/zhou-tt/p/15527642.html
Copyright © 2011-2022 走看看