The Garbage Collection Handbook: The Art of Automatic Memory Management (2nd Ed)
The Garbage Collection Handbook: The Art of Automatic Memory Management (2nd Ed)
Comprehensive Guide to Modern Automatic Memory Management
The Garbage Collection Handbook: The Art of Automatic Memory Management (2nd Ed) 是一本權威性的參考書,綜合了自動記憶體管理領域六十年的研究與開發成果。它更新了 1996 年和 2012 年版本的基礎知識,以應對現代硬體與軟體環境所帶來的複雜性。
第二版中的關鍵更新與新內容
2023 年的第二版在先前版本的基礎上進行了擴展,涵蓋了高效能運算與記憶體管理不斷演進的領域。
擴展的範圍與新章節
- 增加的篇幅: 第二版增加了超過 90 頁的內容。
- 新的專業主題: 本書引入了專注於持久性(persistence)與能源感知型垃圾回收(energy-aware garbage collection)的新章節,反映了現代對於數據持久性與功耗效率的優先考量。
- 現代收集器分析: 對當代高效能商業垃圾回收收集器進行了詳細討論。
進階演算法覆蓋範圍
除了傳統且簡單的演算法外,本手冊提供了對以下內容的全面覆蓋:
- 並行垃圾回收 (Parallel Garbage Collection): 利用多個處理器來減少暫停時間。
- 並行垃圾回收 (Concurrent Garbage Collection): 在應用程式持續運行的同時執行回收任務。
- 增量垃圾回收 (Incremental Garbage Collection): 將回收過程分解為較小的區塊,以避免長時間的暫停。
- 即時垃圾回收 (Real-time Garbage Collection): 為時間敏感型系統確保確定性的暫停時間。
技術特性與學習資源
本手冊旨在服務於垃圾回收收集器的實作者,以及需要配置它們以獲得最佳效能的程式設計師。
教學工具
- 虛擬碼與插圖: 透過視覺輔助工具與虛擬碼來解釋複雜的演算法與概念,以提高易讀性。
- 執行期介面 (Runtime Interface): 本書解釋了垃圾回收的「棘手面向」,特別是收集器與執行期系統之間的介面。
數位增強功能與研究資料庫
- 超連結電子書: 電子版本包含超過 37,000 個超連結,將章節、節點、演算法與術語表條目連接至原始研究論文。
- 書目資料庫: 作者維護了一個包含近 3,400 份與垃圾回收相關出版物的線上資料庫,提供摘要與 DOI,供學術與專業研究使用。
社群觀點與術語爭議
雖然本手冊被廣泛認為是頂尖資源,但社群討論突顯了關於該系列書籍所使用的術語存在著特定的緊張關係。
「垃圾回收」與「自動記憶體管理」之爭
一些從業者認為,將「垃圾回收」作為涵蓋 tracing GC 與 reference counting 的統稱詞是具有誤導性的。正如一位社群成員所言:
What I didn’t like about this series of books was choosing “garbage collection” as umbrella term for both tracing GC and reference counting... By that definition, C++ code has garbage collection if it uses std::shared_ptr, going against widespread common usage of the term “garbage collected programming language” which specifically contrasts manual languages like C++ or Rust against garbage collected ones.
這項批評指出,「自動記憶體管理」是對該領域更準確的描述,因為它涵蓋了所有自動化記憶體回收的方法,而不會暗示特定的 tracing garbage collector 機制。