上QQ阅读APP看书,第一时间看更新
前言
净是拿比自己弱的人当对手,不可能有意思。
没有人能一看到谜题就瞬间解出答案。
读到一半就知道犯人的推理小说真是无聊透顶。
将自身能力发挥至极限去解开问题,这时才能把知识变成自己的东西。
——青木峰郎《Ruby源代码完全解读》
本书中涉及以下两个主题。
1.GC的算法(算法篇)
2.GC的实现(实现篇)
在“算法篇”中,我们从众多的GC算法中严格挑选了一些重要的算法来介绍,包括传统算法和基本算法,以及稍微难一些的算法。“算法篇”最大的目的是让你了解GC独特的思维方式和各算法的特性。
在“实现篇”中,你需要逐步阅读我们选择的语言处理程序的GC算法。因为我们在“算法篇”中扎实地学习了理论,所以需要在“实现篇”中检验一下能把理论运用到什么程度。
特地设计“实现篇”还有一个目的,就是想让你亲身感受“理论和实现的不同”。要成功实现,不仅要使用GC算法,还要在细节上下很多功夫,以与硬件环境和语言功能相协调。通过学习更有实践性意义的知识,希望能进一步加你对GC的理解。
此外,随着深入阅读GC,你会有另一种惊喜,即加深了对语言处理程序的认识。语言处理程序是由数万行代码群构成的巨大程序。在阅读这样巨大的程序时,如果没有一个明确的目标,那么就很难继续往下读。这就好比挖坑,如果往深处挖,坑的直径就会自然而然地扩大。同理,如果我们去深入理解某一点,那么也就会逐渐理解其整体。“实现篇”就是在持续挖掘GC这个深坑。我们深信,这项工作有助于加深我们对语言处理程序的整体理解。
中村成洋、相川光
2010年1月