作 者:[日]中村成洋 相川光 著 丁靈 譯
定 價:99
出 版 社:人民郵電出版社
出版日期:2016年08月01日
頁 數:443
裝 幀:簡裝
ISBN:9787115427472
Ruby之父松本行弘推薦:上古傳承之魔法,有效揭開垃圾回收的秘密!日本天纔程序員兼LISP黑客竹內郁雄審校254幅圖解,輕松掌握GC經典算法實際源碼剖析,深入探討GC具體實現從入門到進階,一本書掌握自動內存回收的機制!1.全面涵蓋GC經典算法 標記-清除算法、引用計數法、復制算法、標記-壓縮算法、保守式GC、分代GC、增量式GC、RC Immix算法,一網打盡! 2.理論結合實際 在繫統介紹GC算法的基礎上,重點解讀Python、DalvikVM、Rubinius、V8等幾種實等
●序章GC的定義 1GC的好處 2GC的歷史 3為什麼我們現在要學GC 4讀者對像 6本書中的符號 7算法篇章 學習GC之前1.1 對像/頭/域 121.2 指針 141.3 mutator 151.4 堆 151.5 活動對像/非活動對像 161.6 分配 161.7 分塊 171.8 根 171.9 評價標準 19第2章 GC標記-清除算法2.1 什麼是GC標記-清除算法 222.2 優點 292.3 缺點 292.4 多個空閑鏈表 312.5 BiBOP法 332.6 位圖標記 342.7 延遲清除法 37第3章 引用計數法3.1 引用計數的算法 403.2 優點 443.3 缺點 443.4 延遲引用計數法 463.5 Sticky引用計數法 503.6 1位引用計數法 523.7 部分標記-清除算法 55第4章 GC復制算法4.1 什麼是GC復制算法 664.2 優點 734.3 缺點 744.4 Cheney的GC復制算法 744.5 近似深度優先搜索方法 784.6 多空間復制算法 83第5章 GC標記-壓縮算法5.1 什麼是GC標記-壓縮算法 895.2 優點 945.3 缺點 955.4 Two-Finger算法 955.5 表格算法 1005.6 ImmixGC算法 106第6章 保守式GC6.1 什麼是保守式GC 1196.2 優點 1226.3 缺點 1226.4 準確式GC 1236.5 間接引用 1256.6 MostlyCopyingGC 1276.7 黑名單 139第7章 分代垃圾回收7.1 什麼是分代垃圾回收 1427.2 Ungar的分代垃圾回收 1437.3 優點 1537.4 缺點 1547.5 記錄各代之間的引用的方法 1547.6 多代垃圾回收 1567.7 列車垃圾回收 157第8章 增量式垃圾回收8.1 什麼是增量式垃圾回收 1668.2 優點和缺點 1748.3 Steele的算法 1748.4 湯淺的算法 1768.5 比較各個寫入屏障 178第9章 RC Immix算法9.1 目的 1809.2 合並型引用計數法 1809.3 合並型引用計數法和Immix的融合 1859.4 優點和缺點 189實現篇0章 Python的垃圾回收10.1 本章前言 19210.2 對像管理 19410.3 Python的內存分配器 19610.4 第0層 通用的基礎分配器 19710.5 層 Python低級內存分配器 19810.6 第2層 Python對像分配器 20810.7 第3層 對像特有的分配器 23110.8 引用計數法 23410.9 引用的所有權 23910.10 如何應對有循環引用的垃圾對像 24510.11 性能調整的建議 2691章 DalvikVM的垃圾回收11.1 本章前言 27111.2 重新學習mmap 27511.3 DalvikVM的源代碼 27911.4 DalvikVM的GC算法 28211.5 對像管理 28211.6 標記階段 29911.7 清除階段 32211.8 Q&A 3272章 Rubinius的垃圾回收12.1 本章前言 32912.2 Rubinius的GC算法 33312.3 對像管理 33412.4 走向準確式GC之路 34312.5 GC復制算法 35912.6 Q&A 3753章 V8的垃圾回收13.1 本章前言 37913.2 V8的GC算法 38213.3 對像管理 38213.4 通往準確式GC之路(V8篇) 38913.5 GC標記-壓縮算法 39813.6 標記階段 40013.7 壓縮階段 41213.8 Q&A 431附錄附錄A 簡單語言入門:Python篇 432附錄B 簡單語言入門:Java篇 435附錄C 簡單語言入門:Ruby篇 436附錄D 簡單語言入門:JavaScript篇 437後記 439參考文獻 441
本書分為“算法篇”和“實現篇”兩大部分。算法篇介紹了標記-清除算法、引用計數法、復制算法、標記-壓縮算法、保守式GC、分代垃圾回收、增量式垃圾回收、RC Immix算法等幾種重要的算法;實現篇介紹了垃圾回收在Python、DalvikVM、Rubinius、V8等幾種語言處理程序中的具體實現。
[日]中村成洋 相川光 著 丁靈 譯
中村成洋Network Applied Communication Laboratory Ltd. 研究員。因為偶然的機會對GC產生濃厚興趣,其本人卻說不清楚為何喜歡GC,當被人追問原因時,總是回答“是緣分”。現在是CRuby的commiter,每天致力於GC的改善。執筆本書“實現篇”。相川光遊戲開發者。京都大學在學期間開始研究GC。熱愛GC但討厭打掃。除了GC之外還喜歡咖喱。執筆本書“算法篇”。竹內郁雄(審校)東京大學名譽教授。熱愛對像,甚至會給因為bug沒能得到重復利用而死去(釋放)的對像上供。日本Lisp黑客,著有《LISP入門》(初めての人のためのLISP)。