zoukankan      html  css  js  c++  java
  • Garbage Collection Mechnism concepts 垃圾回收机制简介

    传统的垃圾回收机制
    1.引用计数(reference counting,RC)算法
        1960年以前,人们为胚胎中的LISP语言设计垃圾回收机制时,第一个想到的算法就是引用计数算法。拿餐巾纸的例子来说
        午餐时,为了把脑子里突然跳出来的设机灵感记下来,我从餐巾纸代中抽出一张餐巾纸,打算在上面画出系统构架的蓝图。按照“餐巾纸使用之引用计数版“的要求,画图之前,我必须事先在餐巾纸的一角写上计数值1,以表示我在使用这张餐巾纸,这是,如果你也想看我的餐巾纸,那你就必须把餐巾纸上的计数值改为2,表示2个人在使用这张餐巾纸。你看完之后,必须把计数值减1。同样,当我把餐巾纸使用完之后,餐巾纸上的计数值就变为0。此时,他会被垃圾回收器捡起来扔到垃圾箱里。
        引用计算法的缺点和优点很明显。这一算法在执行垃圾收集任务时候速度较快,但是算法对程序中每一次内存分配和指针操作提出了额外的要求。跟重要的是,RC无法正确释放循环引用的内存块。

    2.标记-清除(Mark-Sweep,MS)算法
            仍然以餐巾纸为例:    
            午餐过程中,餐厅里的所有人都根据自己的需要取用餐巾纸。当垃圾回收机器人想收集废旧餐巾纸的时候,他会让所有用餐的人先停下来,然后,依次询问餐厅里的每一个人:“你正在用餐巾纸吗?你用的是哪一张餐巾纸“机器人根据每个人的回答将人们正在使用的餐巾纸画上标号。询问过程结束后,机器人在餐厅里面寻找所有散落在餐桌上并且还没有标号的餐巾纸,把他们统统扔到垃圾箱里面。
            正如其名所暗示的那样,标记-清除算法的执行过程分为标记和清除两大阶段。

    3.复制(copying)算法
        cont...
  • 相关阅读:
    C#事务相关
    建造者模式
    CUPS/Printer sharing
    vim note write
    linux下神奇的script
    Nginx server之Nginx添加ssl支持
    nginx使用ssl模块配置HTTPS支持
    stardict dict url
    收银台(POSBox) 配置向导
    让 Odoo POS 支持廉价小票打印机
  • 原文地址:https://www.cnblogs.com/Winston/p/1161664.html
Copyright © 2011-2022 走看看