
掃描右側(cè)圖片或微信搜索 “ Java技術(shù)分享屋 ” ,回復(fù) “ 驗(yàn)證碼 ” ,獲取驗(yàn)證密碼。
本資料僅供讀者預(yù)覽及學(xué)習(xí)交流使用,不能用于商業(yè)用途,請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除。如果喜歡,請(qǐng)購(gòu)買正版!
一.資料圖片
二.資料簡(jiǎn)介
本書圍繞著動(dòng)態(tài)內(nèi)存自動(dòng)回收的話題,介紹了垃圾收集機(jī)制,詳細(xì)分析了各種算法和相關(guān)技術(shù)。
本書共12章。第1章首先介紹計(jì)算機(jī)存儲(chǔ)器管理的演化和自動(dòng)內(nèi)存回收的需求,并引入了本書所使用的術(shù)語(yǔ)和記法。第2章介紹了3種“經(jīng)典”的垃圾收集技術(shù):引用計(jì)數(shù)(reference counting)、標(biāo)記-清掃(mark-sweep)和節(jié)點(diǎn)復(fù)制(copying)。 隨后的4章更詳細(xì)地討論了上述這些垃圾收集方式和標(biāo)記-縮并(mark-compact)收集。第7章和第8章分別介紹了在現(xiàn)代垃圾收集實(shí)現(xiàn)中具有重要地位的分代式(generational)垃圾收集和漸進(jìn)式(incremental)垃圾收集。第9章和第10章擴(kuò)展了垃圾收集的領(lǐng)域,討論了如何讓垃圾收集能夠在無(wú)法得到來(lái)自語(yǔ)言編譯器的支持的環(huán)境(分別是C和C++)中運(yùn)行。第11章討論了一個(gè)相對(duì)較新的研究領(lǐng)域 -- 垃圾收集和硬件數(shù)據(jù)cache的相互作用。第12章簡(jiǎn)要地考察了用于分布式系統(tǒng)的垃圾收集。
本書適合對(duì)動(dòng)態(tài)內(nèi)存管理感興趣的讀者閱讀,可供專業(yè)的研究人員參考。
三.資料目錄
第1章 簡(jiǎn)介
1.1 內(nèi)存分配的歷史
1.1.1 靜態(tài)分配
1.1.2 棧分配
1.1.3 堆分配
1.2 狀態(tài)、存活性和指針可到達(dá)性
1.3 顯式堆分配
1.3.1 一個(gè)簡(jiǎn)單的例子
1.3.2 垃圾
1.3.3 懸掛引用
1.3.4 共享
1.3.5 失敗
1.4 為什么需要垃圾收集
1.4.1 語(yǔ)言的需求
1.4.2 問題的需求
1.4.3 軟件工程的課題
1.4.4 沒有銀彈
1.5 垃圾收集的開銷有多大
1.6 垃圾收集算法比較
1.7 記法
.1.7.1 堆
1.7.2 指針和子女
1.7.3 偽代碼
1.8 引文注記
第2章 經(jīng)典算法
2.1 引用計(jì)數(shù)算法
2.1.1 算法
2.1.2 一個(gè)例子
2.1.3 引用計(jì)數(shù)算法的優(yōu)勢(shì)和弱點(diǎn)
2.1.4 環(huán)形數(shù)據(jù)結(jié)構(gòu)
2.2 標(biāo)記一清掃算法
2.2.1 算法
2.2.2 標(biāo)記—清掃算法的優(yōu)勢(shì)和弱點(diǎn)
2.3 節(jié)點(diǎn)復(fù)制算法
2.3.1 算法
2.3.2 一個(gè)例子
2.3.3 節(jié)點(diǎn)復(fù)制算法的優(yōu)勢(shì)和弱點(diǎn)
2.4 比較標(biāo)記—清掃技術(shù)和節(jié)點(diǎn)復(fù)制技術(shù)
2.5 需要考慮的問題
2.6 引文注記
第3章 引用計(jì)數(shù)
3.1 非遞歸的釋放
3.1.1 算法
3.1.2 延遲釋放的優(yōu)點(diǎn)和代價(jià)
3.2 延遲引用計(jì)數(shù)
3.2.1 deutsch-bobrow算法
3.2.2 一個(gè)例子
3.2.3 zct溢出
3.2.4 延遲引用計(jì)數(shù)的效率
3.3 計(jì)數(shù)域大小受限的引用計(jì)數(shù)
3.3.1 “粘住的”計(jì)數(shù)值
3.3.2 追蹤式收集恢復(fù)計(jì)數(shù)值
3.3.3 僅有一位的計(jì)數(shù)值
3.3.4 恢復(fù)獨(dú)享信息
3.3.5 “ought to be two”緩沖區(qū)
3.4 硬件引用計(jì)數(shù)
3.5 環(huán)形引用計(jì)數(shù)
3.5.1 函數(shù)式程序設(shè)計(jì)語(yǔ)言
3.5.2 bobrow的技術(shù)
3.5.3 弱指針?biāo)惴?br/>3.5.4 部分標(biāo)記—清掃算法
3.6 需要考慮的問題
3.7 引文注記
第4章 標(biāo)記—清掃垃圾收集
4.1 與引用計(jì)數(shù)技術(shù)的比較
4.2 使用標(biāo)記棧
4.2.1 顯式地使用棧來(lái)實(shí)現(xiàn)遞歸
4.2.2 最小化棧的深度
4.2.3 棧溢出
4.3 指針反轉(zhuǎn)
4.3.1 deutsch-schorr-waite算法
4.3.2 可變大小節(jié)點(diǎn)的指針反轉(zhuǎn)
4.3.3 指針反轉(zhuǎn)的開銷
4.4 位圖標(biāo)記
4.5 延遲清掃
4.5.1 hughes的延遲清掃算法
4.5.2 boehm-demers-weiser清掃器
4.5.3 zorn的延遲清掃器
4.6 需要考慮的問題
4.7 引文注記
第5章 標(biāo)記—縮并垃圾收集
5.1 碎片現(xiàn)象
5.2 縮并的方式
5.3 “雙指針”算法
5.3.1 算法
5.3.2 對(duì)“雙指針”算法的分析
5.3.3 可變大小的單元
5.4 lisp 2 算法
5.5 基于表的方法
5.5.1 算法
5.5.2 間斷表
5.5.3 更新指針
5.6 穿線方法
5.6.1 穿線指針
5.6.2 jonkers的縮并算法
5.6.3 前向指針
5.6.4 后向指針
5.7 需要考慮的問題
5.8 引文注記
第6章 節(jié)點(diǎn)復(fù)制垃圾收集
6.1 cheney的節(jié)點(diǎn)復(fù)制收集器
6.1.1 三色抽象
6.1.2 算法
6.1.3 一個(gè)例子
6.2 廉價(jià)地分配
6.3 多區(qū)域收集
6.3.1 靜態(tài)區(qū)域
6.3.2 大型對(duì)象區(qū)域
6.3.3 漸進(jìn)的遞增縮并垃圾收集
6.4 垃圾收集器的效率
6.5 局部性問題
6.6 重組策略
6.6.1 深度優(yōu)先節(jié)點(diǎn)復(fù)制與廣度優(yōu)先節(jié)點(diǎn)復(fù)制
6.6.2 不需要棧的遞歸式節(jié)點(diǎn)復(fù)制收集
6.6.3 近似于深度優(yōu)先的節(jié)點(diǎn)復(fù)制
6.6.4 層次分解
6.6.5 哈希表
6.7 需要考慮的問題
6.8 引文注記
第7章 分代式垃圾收集
7.1 分代假設(shè)
7.2 分代式垃圾收集
7.2.1 一個(gè)簡(jiǎn)單例子
7.2.2 中斷時(shí)間
7.2.3 次級(jí)收集的根集合
7.2.4 性能
7.3 提升策略
7.3.1 多個(gè)分代
7.3.2 提升的閩值
7.3.3 standard ml of new jersey收集器
7.3.4 自適應(yīng)提升
7.4 分代組織和年齡記錄
7.4.1 每個(gè)分代一個(gè)半?yún)^(qū)
7.4.2 創(chuàng)建空間
7.4.3 記錄年齡
7.4.4 大型對(duì)象區(qū)域
7.5 分代間指針
7.5.1 寫攔截器
7.5.2 入口表
7.5.3 記憶集
7.5.4 順序保存緩沖區(qū)
7.5.5 硬件支持的頁(yè)面標(biāo)記
7.5.6 虛存系統(tǒng)支持的頁(yè)面標(biāo)記
7.5.7 卡片標(biāo)記
7.5.8 記憶集還是卡片
7.6 非節(jié)點(diǎn)復(fù)制的分代式垃圾收集
7.7 調(diào)度垃圾收集
7.7.1 關(guān)鍵對(duì)象
7.7.2 成熟對(duì)象空間
7.8 需要考慮的問題
7.9 1 文注記
第8章 漸進(jìn)式和并發(fā)垃圾收集
8.1 同步
8.2 攔截器方案
8.3 標(biāo)記—清掃收集器
8.3.1 寫攔截器
8.3.2 新單元
8.3.3 初始化和終止
8.3.4 虛存技術(shù)
8.4 并發(fā)引用計(jì)數(shù)
8.5 baker的算法
8.5.1 算法
8.5.2 baker算法的延遲的界限
8.5.3 baker的算法的局限
8.5.4 baker算法的變種
8.5.5 動(dòng)態(tài)重組
8.6 appel-ellis-li收集器
8.6.1 各種改進(jìn)
8.6.2 大型對(duì)象
8.6.3 分代
8.6.4 性能
8.7 應(yīng)變復(fù)制收集器
8.7.1 nettle的應(yīng)變復(fù)制收集器
8.7.2 huelsbergen和larus的收集器
8.7.3 doligez-leroy-gonthier收集器
8.8 baker的工作環(huán)收集器
8.9 對(duì)實(shí)時(shí)垃圾收集的硬件支持
8.10 需要考慮的問題
8.11 引文注記
第9章 c語(yǔ)言的垃圾收集
9.1 根不確定收集的一個(gè)分類
9.2 保守式垃圾收集
9.2.1 分配
9.2.2 尋找根和指針
9.2.3 內(nèi)部指針
9.2.4 保守式垃圾收集的問題
9.2.5 識(shí)別錯(cuò)誤
9.2.6 效率
9.2.7 漸進(jìn)式、分代式垃圾收集
9.3 準(zhǔn)復(fù)制式收集
9.3.1 堆的布局
9.3.2 分配
9.3.3 垃圾收集
9.3.4 分代式垃圾收集
9.3.5 無(wú)法精確識(shí)別的數(shù)據(jù)結(jié)構(gòu)
9.3.6 準(zhǔn)復(fù)制式收集的效率
9.4 優(yōu)化的編譯器是“魔鬼”
9.5 需要考慮的問題
9.6 引文注記
第10章 c++語(yǔ)言的垃圾收集
10.1 用于面向?qū)ο笳Z(yǔ)言的垃圾收集
10.2 對(duì)c++垃圾收集器的需求
10.3 在編譯器中還是在庫(kù)中
10.4 保守式垃圾收集
10.5 準(zhǔn)復(fù)制式收集器
10.6 智能指針
10.6.1 在沒有智能指針類層次的情況下進(jìn)行轉(zhuǎn)換
10.6.2 多重繼承
10.6.3 不正確的轉(zhuǎn)換
10.6.4 某些指針無(wú)法“智能化”
10.6.5 用const和volatile修飾的指針
10.6.6 智能指針的“泄漏”
10.6.7 智能指針和引用計(jì)數(shù)
10.6.8 一個(gè)簡(jiǎn)單的引用計(jì)數(shù)指針
10.6.9 用于靈活的垃圾收集的智能指針
10.6.10 用于追蹤式垃圾收集的智能指針
10.7 為支持垃圾收集而修改c++
10.8 ellis和deters的建議
10.9 終結(jié)機(jī)制
10.10 需要考慮的問題
10.11 引文注記
第11章 垃圾收集與cache
11.1 現(xiàn)代處理器體系結(jié)構(gòu)
11.2 cache的體系結(jié)構(gòu)
11.2.1 cache容量
11.2.2 放置策略
11.2.3 寫策略
11.2.4 特殊的cache指令
11.3 內(nèi)存訪問的模式
11.3.1 標(biāo)記 —清掃技術(shù),使用標(biāo)記位圖和延遲清掃
11.3.2 節(jié)點(diǎn)復(fù)制垃圾收集
11.3.3 漸進(jìn)式垃圾收集
11.3.4 避免讀取
11.4 改進(jìn)cache性能的標(biāo)準(zhǔn)方法
11.4.1 cache的容量
11.4.2 塊大小
11.4.3 相聯(lián)度
11.4.4 特殊指令
11.4.5 預(yù)取
11.5 失誤率和總體cache性能
11.6 專用硬件
11.7 需要考慮的問題
11.8 引文注記
第12章 分布式垃圾收集
12.1 需求
12.2 虛擬共享存儲(chǔ)器
12.2.1 共享虛擬存儲(chǔ)器模型
12.2.2 共享數(shù)據(jù)對(duì)象模型
12.2.3 分布式共享存儲(chǔ)器之上的垃圾收集
12.3 與分布式垃圾收集有關(guān)的課題
12.3.1 分類原則
12.3.2 同步
12.3.3 魯棒性
12.4 分布式標(biāo)記—清掃
12.4.1 hudak和keller
12.4.2 ali的算法
12.4.3 hughes的算法
12.4.4 liskov-ladin算法
12.4.5 augusteijn的算法
12.4.6 vestal的算法
12.4.7 schelvis-bledoeg算法
12.4.8 emerald收集器
12.4.9 ik收集器
12.5 分布式節(jié)點(diǎn)復(fù)制
12.6 分布式引用計(jì)數(shù)
12.6.1 lermen-maurer協(xié)議
12.6.2 間接引用計(jì)數(shù)
12.6.3 mancini-shrivastava算活
12.6.4 spg協(xié)議
12.6.5 “garbage collecting the world”
12.6.6 網(wǎng)絡(luò)對(duì)象
12.6.7 帶權(quán)引用計(jì)數(shù)
12.6.8 世代引用計(jì)數(shù)
12.7 對(duì)actor進(jìn)行垃圾收集
12.7.1 halstead算法
12.7.2 標(biāo)記算法
12.7.3 邏輯上集中式的收集器
12.8 引文注記
術(shù)語(yǔ)表
參考文獻(xiàn)
索引
算法列表