美文网首页
垃圾回收的算法与实现读书笔记—序章

垃圾回收的算法与实现读书笔记—序章

作者: whj0709 | 来源:发表于2018-02-25 10:11 被阅读0次

    GC要做的有两件事:

    1. 找到内存空间里的垃圾;
    2. 回收垃圾;
      让程序员能再次利用这部分空间,满足这两项功能的程序就是 GC。

    没有GC的语言会面临几个问题:

    1. 内存泄漏;
    2. 释放空间,没有将指针置为空,导致悬挂指针;
    3. 错误释放内存;

    最初的GC算法是John McCarthy在1960年发布的。John McCarthy身为Lisp之父和人工智能之父,是一名非常有名的黑客,事实上他同时也是GC之父。

    GC算法分类:

    • 标记-清除算法:1960年,McCarthy在其论文中首次发布了GC算法。在这篇论文中发布的算法,就是现在我们所说的GC标记-清除算法;
    • 引用计数算法:1960年,George E. Collins在论文中发布了叫作引用计数的 GC算法。当时Collins可能没有注意到,引用计数法有个缺点,就是它不能回收“循环引用” 。Harold McBeth在1963年指出了这个缺点;
    • 复制算法:1963年,也有“人工智能之父”之称的Marvin L. Minsky在论文中发布了复制算法;
      现在为世人所知的GC算法,不过是从这三种基本算法中衍生出来的产物。

    相关文章

      网友评论

          本文标题:垃圾回收的算法与实现读书笔记—序章

          本文链接:https://www.haomeiwen.com/subject/tmjlxftx.html