垃圾收集的最后十年总结?

Ben*_*rel 11 garbage-collection

我一直在阅读Jones&Lins关于垃圾收集的书,该书于1996年出版.

显然,从那时起,计算世界发生了巨大的变化:具有大缓存的多核,无序芯片,以及桌面中更大的主存储器.对于大多数面向消费者的系统,全世界也或多或少地选择了x86和ARM微体系结构.

自这本开创性着作出版以来,最重要的进展是什么?

我特别关注论文,算法,学位论文等的指针,代表了垃圾收集理论和实践的进步.

Tho*_*nin 1

据我所知,过去十年垃圾收集技术的大多数进步都在“实用”方面:算法是已知的,但针对多核系统和观察到的使用模式进行了一些相当大的调整。该研究的很大一部分是由 Sun 和 IBM 在 Java 背景下完成的(令人惊讶的是 Jones & Lins 书中提出的大多数使用模式分析都是关于 Lisp 及其单链表;现在的论文谈论的是爪哇)。Sun 的 G1 算法是建立在 Jones & Lins 书中所有旧思想的基础上的——但是 Sun(现在的 Oracle)的人们努力寻找哪种组合最有效。

关于分布式垃圾收集也有很多研究——如何在分布式计算通常具有挑战性的条件下,对分散在不同系统上的数据对象进行 GC 管理:网络速度慢、节点可能彼此不相等、某些节点可能不相等。失败。总体结论似乎是它不起作用(研究发现多得多)。具有引用计数(用于对位于另一个系统上的对象的引用)的有限版本已经被实现(例如在Java的RMI中)并且似乎可以在没有跨节点引用循环的上下文中工作。