産品特色
編輯推薦
Ruby之父鬆本行弘推薦:上古傳承之魔法,徹底揭開垃圾迴收的秘密!
日本天纔程序員兼LISP黑客竹內鬱雄審校
254幅圖解,輕鬆掌握GC經典算法
實際源碼剖析,深入探討GC具體實現
從入門到進階,一本書掌握自動內存迴收的機製!
1.全麵涵蓋GC經典算法
標記-清除算法、引用計數法、復製算法、標記-壓縮算法、保守式GC、分代GC、增量式GC、RC Immix算法,一網打盡!
2.理論結閤實際
在係統介紹GC算法的基礎上,重點解讀Python、DalvikVM、Rubinius、V8等幾種實用係統中的GC代碼,探究GC算法的實際應用,做到瞭理論和實際的平衡統一。
3.圖文直觀、講解細緻
配閤大量形象的插圖和代碼,將各個知識點掰開揉碎講解,非常適閤入門學習。
內容簡介
本書分為“算法篇”和“實現篇”兩大部分。算法篇介紹瞭標記-清除算法、引用計數法、復製算法、標記-壓縮算法、保守式GC、分代垃圾迴收、增量式垃圾迴收、RCImmix算法等幾種重要的算法;實現篇介紹瞭垃圾迴收在Python、DalvikVM、Rubinius、V8等幾種語言處理程序中的具體實現。
作者簡介
中村成洋 ,Network Applied Communication Laboratory Ltd. 研究員。
因為偶然的機會對GC産生濃厚興趣,其本人卻說不清楚為何喜歡GC,當被人追問原因時,總是迴答“是緣分”。現在是CRuby的commiter,每天緻力於GC的改善。
執筆本書“實現篇”。
相川光 ,遊戲開發者。
京都大學在學期間開始研究GC。熱愛GC但討厭打掃。除瞭GC之外還喜歡咖喱。
執筆本書“算法篇”。
竹內鬱雄(審校) ,東京大學名譽教授。
熱愛對象,甚至會給因為bug沒能得到重復利用而死去(釋放)的對象上供。
日本Lisp黑客,著有《LISP入門》(初めての人のためのLISP)。
目錄
序章
GC的定義 1
GC的好處 2
GC的曆史 3
為什麼我們現在要學GC 4
讀者對象 6
本書中的符號 7
算法篇
第1章 學習GC之前
1.1 對象/頭/域 12
1.2 指針 14
1.3 mutator 15
1.4 堆 15
1.5 活動對象/非活動對象 16
1.6 分配 16
1.7 分塊 17
1.8 根 17
1.9 評價標準 19
第2章 GC標記-清除算法
2.1 什麼是GC標記-清除算法 22
2.2 優點 29
2.3 缺點 29
2.4 多個空閑鏈錶 31
2.5 BiBOP法 33
2.6 位圖標記 34
2.7 延遲清除法 37
第3章 引用計數法
3.1 引用計數的算法 40
3.2 優點 44
3.3 缺點 44
3.4 延遲引用計數法 46
3.5 Sticky引用計數法 50
3.6 1位引用計數法 52
3.7 部分標記-清除算法 55
第4章 GC復製算法
4.1 什麼是GC復製算法 66
4.2 優點 73
4.3 缺點 74
4.4 Cheney的GC復製算法 74
4.5 近似深度優先搜索方法 78
4.6 多空間復製算法 83
第5章 GC標記-壓縮算法
5.1 什麼是GC標記-壓縮算法 89
5.2 優點 94
5.3 缺點 95
5.4 Two-Finger算法 95
5.5 錶格算法 100
5.6 ImmixGC算法 106
第6章 保守式GC
6.1 什麼是保守式GC 119
6.2 優點 122
6.3 缺點 122
6.4 準確式GC 123
6.5 間接引用 125
6.6 MostlyCopyingGC 127
6.7 黑名單 139
第7章 分代垃圾迴收
7.1 什麼是分代垃圾迴收 142
7.2 Ungar的分代垃圾迴收 143
7.3 優點 153
7.4 缺點 154
7.5 記錄各代之間的引用的方法 154
7.6 多代垃圾迴收 156
7.7 列車垃圾迴收 157
第8章 增量式垃圾迴收
8.1 什麼是增量式垃圾迴收 166
8.2 優點和缺點 174
8.3 Steele的算法 174
8.4 湯淺的算法 176
8.5 比較各個寫入屏障 178
第9章 RC Immix算法
9.1 目的 180
9.2 閤並型引用計數法 180
9.3 閤並型引用計數法和Immix的融閤 185
9.4 優點和缺點 189
實現篇
第10章 Python的垃圾迴收
10.1 本章前言 192
10.2 對象管理 194
10.3 Python的內存分配器 196
10.4 第0層 通用的基礎分配器 197
10.5 第1層 Python低級內存分配器 198
10.6 第2層 Python對象分配器 208
10.7 第3層 對象特有的分配器 231
10.8 引用計數法 234
10.9 引用的所有權 239
10.10 如何應對有循環引用的垃圾對象 245
10.11 性能調整的建議 269
第11章 DalvikVM的垃圾迴收
11.1 本章前言 271
11.2 重新學習mmap 275
11.3 DalvikVM的源代碼 279
11.4 DalvikVM的GC算法 282
11.5 對象管理 282
11.6 標記階段 299
11.7 清除階段 322
11.8 Q&A; 327
第12章 Rubinius的垃圾迴收
12.1 本章前言 329
12.2 Rubinius的GC算法 333
12.3 對象管理 334
12.4 走嚮準確式GC之路 343
12.5 GC復製算法 359
12.6 Q&A; 375
第13章 V8的垃圾迴收
13.1 本章前言 379
13.2 V8的GC算法 382
13.3 對象管理 382
13.4 通往準確式GC之路(V8篇) 389
13.5 GC標記-壓縮算法 398
13.6 標記階段 400
13.7 壓縮階段 412
13.8 Q&A; 431
附錄
附錄A 簡單語言入門:Python篇 432
附錄B 簡單語言入門:Java篇 435
附錄C 簡單語言入門:Ruby篇 436
附錄D 簡單語言入門:JavaScript篇 437
後記 439
參考文獻 441
前言/序言
垃圾迴收的算法與實現 下載 mobi epub pdf txt 電子書
評分
☆☆☆☆☆
講GC不錯的參考書!內容豐富,寫的有日式匠人風格... 推薦~
評分
☆☆☆☆☆
gc入門的經典書籍,剛開始拜讀,插圖很多,挺厚的一本書
評分
☆☆☆☆☆
待會的好成績查成績的江南岸
評分
☆☆☆☆☆
我一直在想每次調整gc,真的是越跳越好嗎?
評分
☆☆☆☆☆
書到的很快 很完整 還沒開始看 大概翻瞭一下 紙張和印的質量不錯
評分
☆☆☆☆☆
很是不錯的,目前比較有用
評分
☆☆☆☆☆
很好的書,講解很詳細,好書
評分
☆☆☆☆☆
灰常棒!!!!
評分
☆☆☆☆☆
書是正版,效率高速度快,不錯