
掃描右側(cè)圖片或微信搜索 “ Java技術(shù)分享屋 ” ,回復(fù) “ 驗證碼 ” ,獲取驗證密碼。
本資料僅供讀者預(yù)覽及學(xué)習(xí)交流使用,不能用于商業(yè)用途,請在下載后24小時內(nèi)刪除。如果喜歡,請購買正版!
一.資料圖片
二.資料簡介
★ Ruby之父Matz作推薦語:上古傳承的魔法,徹底揭開垃圾回收的秘密!
★ 日本天才程序員兼Lisp黑客竹內(nèi)郁雄審校
本書前半介紹基本GC算法,包括標(biāo)記-清除GC、引用計數(shù)、復(fù)制算法的GC、串行GC的算法、并發(fā)GC的算法等。后半介紹V8、Rubinius、Dalvik、CPython等幾種具體GC的實現(xiàn)。本書適合各領(lǐng)域程序員閱讀。
三.資料目錄
序章
GC的定義 1
GC的好處 2
GC的歷史 3
為什么我們現(xiàn)在要學(xué)GC 4
讀者對象 6
本書中的符號 7
算法篇
第1章 學(xué)習(xí)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 評價標(biāo)準(zhǔn) 19
第2章 GC標(biāo)記-清除算法
2.1 什么是GC標(biāo)記-清除算法 22
2.2 優(yōu)點 29
2.3 缺點 29
2.4 多個空閑鏈表 31
2.5 BiBOP法 33
2.6 位圖標(biāo)記 34
2.7 延遲清除法 37
第3章 引用計數(shù)法
3.1 引用計數(shù)的算法 40
3.2 優(yōu)點 44
3.3 缺點 44
3.4 延遲引用計數(shù)法 46
3.5 Sticky引用計數(shù)法 50
3.6 1位引用計數(shù)法 52
3.7 部分標(biāo)記-清除算法 55
第4章 GC復(fù)制算法
4.1 什么是GC復(fù)制算法 66
4.2 優(yōu)點 73
4.3 缺點 74
4.4 Cheney的GC復(fù)制算法 74
4.5 近似深度優(yōu)先搜索方法 78
4.6 多空間復(fù)制算法 83
第5章 GC標(biāo)記-壓縮算法
5.1 什么是GC標(biāo)記-壓縮算法 89
5.2 優(yōu)點 94
5.3 缺點 95
5.4 Two-Finger算法 95
5.5 表格算法 100
5.6 ImmixGC算法 106
第6章 保守式GC
6.1 什么是保守式GC 119
6.2 優(yōu)點 122
6.3 缺點 122
6.4 準(zhǔn)確式GC 123
6.5 間接引用 125
6.6 MostlyCopyingGC 127
6.7 黑名單 139
第7章 分代垃圾回收
7.1 什么是分代垃圾回收 142
7.2 Ungar的分代垃圾回收 143
7.3 優(yōu)點 153
7.4 缺點 154
7.5 記錄各代之間的引用的方法 154
7.6 多代垃圾回收 156
7.7 列車垃圾回收 157
第8章 增量式垃圾回收
8.1 什么是增量式垃圾回收 166
8.2 優(yōu)點和缺點 174
8.3 Steele的算法 174
8.4 湯淺的算法 176
8.5 比較各個寫入屏障 178
第9章 RC Immix算法
9.1 目的 180
9.2 合并型引用計數(shù)法 180
9.3 合并型引用計數(shù)法和Immix的融合 185
9.4 優(yōu)點和缺點 189
實現(xiàn)篇
第10章 Python的垃圾回收
10.1 本章前言 192
10.2 對象管理 194
10.3 Python的內(nèi)存分配器 196
10.4 第0層 通用的基礎(chǔ)分配器 197
10.5 第1層 Python低級內(nèi)存分配器 198
10.6 第2層 Python對象分配器 208
10.7 第3層 對象特有的分配器 231
10.8 引用計數(shù)法 234
10.9 引用的所有權(quán) 239
10.10 如何應(yīng)對有循環(huán)引用的垃圾對象 245
10.11 性能調(diào)整的建議 269
第11章 DalvikVM的垃圾回收
11.1 本章前言 271
11.2 重新學(xué)習(xí)mmap 275
11.3 DalvikVM的源代碼 279
11.4 DalvikVM的GC算法 282
11.5 對象管理 282
11.6 標(biāo)記階段 299
11.7 清除階段 322
11.8 Q&A 327
第12章 Rubinius的垃圾回收
12.1 本章前言 329
12.2 Rubinius的GC算法 333
12.3 對象管理 334
12.4 走向準(zhǔn)確式GC之路 343
12.5 GC復(fù)制算法 359
12.6 Q&A 375
第13章 V8的垃圾回收
13.1 本章前言 379
13.2 V8的GC算法 382
13.3 對象管理 382
13.4 通往準(zhǔn)確式GC之路(V8篇) 389
13.5 GC標(biāo)記-壓縮算法 398
13.6 標(biāo)記階段 400
13.7 壓縮階段 412
13.8 Q&A 431
附錄
附錄A 簡單語言入門:Python篇 432
附錄B 簡單語言入門:Java篇 435
附錄C 簡單語言入門:Ruby篇 436
附錄D 簡單語言入門:JavaScript篇 437
后記 439
參考文獻 441
四.資料評論
在這里,我們請閱讀過本書原稿的人士發(fā)表了一下他們對本書的看法,如下所示(姓名按五十音順序和字母順序排列,敬稱略去)。
齊藤Tadashi
我是個門外漢,所以剛開始還挺擔(dān)心自己能不能理解呢!不過書中的講解十分細致,作者把每個知識點都掰開嚼碎了,讓我非常享受這個學(xué)習(xí)過程。非常期待中村和相川兩位老師的下一部作品。
中川真宏
大都都管我叫D語言傳教士,我每天都在想著怎么改變一下D語言。就在這時,我遇見了這本書。這本書肯定能教會每個人創(chuàng)建自己的GC。大家也不妨試試做出自己的GC,享受精彩的編程生活吧!
三浦英樹
我是一名喜歡Lisp和Ruby的水管工,喜歡寫語言處理程序,在學(xué)生時代就寫過GC標(biāo)記-清除算法和GC復(fù)制算法。不過太遲了,非常遺憾當(dāng)年沒有出現(xiàn)這本書,沒能知道其中介紹的各種各樣的技巧!通過本書我學(xué)到了非常多的東西!
k.inaba
我喜歡Code GolfA 和編程競賽,是一個代碼玩家。關(guān)于GC,我只知道一些基本理論,于是就戰(zhàn)戰(zhàn)兢兢地憑著對GC的一點了解閱讀了本書原稿。然后我發(fā)現(xiàn),通過基本算法知識的積累,慢慢就能理解一般語言處理程序中使用的具有一定規(guī)模的GC源代碼了。體會到這一點的時候別提有多開心了!
mokehehe
剛開始我半信半疑地試著用了下GC,然后就交到了女朋友!我已經(jīng)沒法想象沒有GC的日子了!我要把這份喜悅分享給大家!