注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)網(wǎng)絡(luò)與數(shù)據(jù)通信.NET內(nèi)存管理寶典

.NET內(nèi)存管理寶典

.NET內(nèi)存管理寶典

定 價:¥139.00

作 者: 康拉德·科克薩(Konrad Kokosa) 著
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 計算機/網(wǎng)絡(luò) 硬件 外部設(shè)備 維修

ISBN: 9787302571339 出版時間: 2021-03-01 包裝: 平裝
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  了解.NET內(nèi)存管理的內(nèi)部工作原理、陷阱和技術(shù),以便有效地避免軟件中出現(xiàn)各種性能和可伸縮性問題。盡管.NET具有自動內(nèi)存管理功能,但了解 .NET的內(nèi)存管理工作原理以及如何最好地編寫與之高效交互的軟件方面仍有許多益處?!?NET內(nèi)存管理寶典 提高代碼質(zhì)量、性能和可擴(kuò)展性》是你通過了解和處理 .NET 中的內(nèi)存管理來編寫出更好軟件的全面指南?! ?NET內(nèi)存管理寶典 提高代碼質(zhì)量、性能和可擴(kuò)展性》經(jīng)過了 Microsoft 的 .NET 團(tuán)隊全面審查,包含 了25 個有價值的故障排除方案,旨在幫助診斷具有挑戰(zhàn)性的內(nèi)存問題。讀者還將受益于多個 .NET 內(nèi)存管理”規(guī)則”,這些規(guī)則介紹了編寫內(nèi)存感知代碼的方法以及避免常見的破壞性陷阱的方法。 本書內(nèi)容 ● 了解自動內(nèi)存管理的理論基礎(chǔ) ● 深入研究.NET內(nèi)存管理的各個方面,包括對垃圾回收(GC)實現(xiàn)的詳細(xì)介紹,這些知識如果自行摸索需要多年經(jīng)驗才能獲得 ● 獲得如何將這些知識應(yīng)用于實際軟件開發(fā)中的實用建議 ●使用與 .NET 內(nèi)存管理相關(guān)工具的實用知識來診斷各種與內(nèi)存相關(guān)的問題 ● 探索高級內(nèi)存管理的各個方面,包括使用Span和Memory類型

作者簡介

  作 者 簡 介 Konrad Kokosa是一位經(jīng)驗豐富的軟件設(shè)計師和開發(fā)人員。他對Microsoft公司的技術(shù)特別感興趣,同時對其他所有技術(shù)也充滿好奇。Konrad從事編程工作已經(jīng)有十多年,解決過.NET世界中的許多性能問題和架構(gòu)難題,設(shè)計和提升過.NET應(yīng)用程序的運行速度。他是一名獨立顧問,是meetup和技術(shù)會議講師,喜歡寫Twitter。Konrad還分享了他作為.NET領(lǐng)域培訓(xùn)講師的激情歲月,特別是在應(yīng)用程序性能、編碼優(yōu)秀實踐和診斷方面。他是華沙Web性能小組的創(chuàng)始人。他是Visual Studio和開發(fā)工具類別中的Microsoft MVP。他是Dotnetos.org的聯(lián)合創(chuàng)始人。Dotnetos.org由三位.NET愛好者發(fā)起,主要組織.NET性能相關(guān)的會議。譯 者 簡 介 葉偉民 《.NET并發(fā)編程實戰(zhàn)》的譯者。曾在美國舊金山工作,具有16年的.NET開發(fā)經(jīng)驗,目前從業(yè)于金融科技行業(yè)。 涂曙光 前微軟技術(shù)專家,專注于.NET和JavaScript技術(shù)領(lǐng)域。目前在私募基金行業(yè)從事低延遲交易系統(tǒng)的開發(fā)。

圖書目錄

目  錄

第1章 基本概念 1
1.1 內(nèi)存相關(guān)術(shù)語 2
1.2 手動內(nèi)存管理 15
1.3 自動內(nèi)存管理 19
1.4 引用計數(shù) 23
1.5 跟蹤回收器(Tracking Collector ) 26
1.6 小歷史 32
1.7 本章小結(jié) 34
規(guī)則1 – 自學(xué) 34
第2章 底層內(nèi)存管理 37
2.1 硬件 37
2.2 操作系統(tǒng) 55
2.3 NUMA和CPU組 70
2.4 本章小結(jié) 71
規(guī)則2 – 避免隨機訪問,擁抱循序訪問 71
規(guī)則3 – 提高空間和時間數(shù)據(jù)局部性 72
規(guī)則4 – 不要放棄使用更高級技巧的可能性 72
第3章 內(nèi)存測量 73
3.1 盡早測量 74
3.2 Windows環(huán)境 81
3.3 Linux環(huán)境 123
3.4 本章小結(jié) 135
規(guī)則5 – 盡早測量GC 137
第4章 .NET基礎(chǔ)知識 139
4.1 .NET版本 139
4.2 .NET內(nèi)部原理 141
4.3 程序集和應(yīng)用程序域 148
4.4 進(jìn)程內(nèi)存區(qū)域 150
4.5 類型系統(tǒng) 161
4.6 字符串 173
4.7 裝箱與拆箱 185
4.8 按引用傳遞 188
4.9 類型數(shù)據(jù)局部性 190
4.10 靜態(tài)數(shù)據(jù) 193
4.11 本章小結(jié) 197
規(guī)則6 – 測量你的程序 197
規(guī)則7 – 不要假設(shè)內(nèi)存泄漏不存在 198
規(guī)則8 – 考慮使用結(jié)構(gòu) 198
規(guī)則9 – 考慮使用字符串暫存 198
規(guī)則10 – 避免裝箱 198
第5章 內(nèi)存分區(qū) 201
5.1 分區(qū)策略 201
5.2 按大小分區(qū) 202
5.3 按生存期分區(qū) 207
5.4 按物理分區(qū) 224
5.5 本章小結(jié) 241
規(guī)則11 – 監(jiān)視代大小 241
規(guī)則12 – 避免不必要的堆引用 241
規(guī)則13 – 監(jiān)視段使用情況 242
第6章 內(nèi)存分配 243
6.1 內(nèi)存分配簡介 243
6.2 bump pointer分配 244
6.3 空閑列表分配 250
6.4 創(chuàng)建新對象 253
6.5 堆再平衡 260
6.6 OutOfMemoryException異常 262
場景6-1:OutOfMemoryException異常 263
6.7 堆棧分配 265
6.8 避免分配 266
6.9 本章小結(jié) 300
規(guī)則14 – 在性能攸關(guān)的地方,
避免堆分配 300
規(guī)則15 – 避免過多的LOH分配 301
規(guī)則16 – 如果可行,在堆棧上分配 301
第7章 垃圾回收——簡介 303
7.1 高層視圖 303
7.2 GC過程的示例 304
7.3 GC過程的步驟 309
場景7-1:分析GC的使用情況 309
7.4 分析GC 313
7.5 垃圾回收性能調(diào)優(yōu)數(shù)據(jù) 314
7.6 回收觸發(fā)器 325
7.7 EE掛起 334
場景7-4:分析GC掛起時間 335
7.8 要判決的代 336
場景7-5:被判決的代的分析 338
7.9 本章小結(jié) 339
第8章 垃圾回收——標(biāo)記階段 341
8.1 對象的遍歷與標(biāo)記 341
8.2 局部變量根 342
8.3 終結(jié)根 357
8.4 GC內(nèi)部根 357
8.5 GC句柄根 358
8.6 處理內(nèi)存泄漏 363
第9章 垃圾回收——計劃階段 371
9.1 小對象堆 371
9.2 大對象堆 389
9.3 壓縮的決策 390
9.4 本章小結(jié) 391
第10章 垃圾回收——清除和壓縮 393
10.1 清除階段 393
10.2 壓縮階段 394
10.3 本章小結(jié) 404
規(guī)則17 – 觀察運行時掛起 405
規(guī)則18 – 避免“中年危機” 406
規(guī)則19 – 避免老的代和LOH碎片化 406
規(guī)則20 – 避免顯式GC 407
規(guī)則21 – 避免內(nèi)存泄漏 407
規(guī)則22 – 避免固定 407
第11章 GC風(fēng)格 409
11.1 模式概述 409
11.2 模式配置 411
11.3 GC停頓和開銷 413
11.4 模式描述 414
11.5 延遲模式 426
11.6 選擇GC風(fēng)格 431
11.7 本章小結(jié) 438
規(guī)則23 – 有意識地選擇GC模式 439
規(guī)則24 – 記住延遲模式的相關(guān)知識 439
第12章 對象生存期 441
12.1 對象與資源的生命周期 441
12.2 終結(jié) 442
12.3 Disposable對象 463
12.4 安全句柄 468
12.5 弱引用 473
12.6 本章小結(jié) 486
規(guī)則25 – 避免終結(jié)器 486
規(guī)則26 – 首選顯式清理 487
第13章 其他主題 489
13.1 依賴句柄 489
13.2 線程局部存儲 494
13.3 托管指針 504
13.4 關(guān)于結(jié)構(gòu)的更多知識 526
13.5 對象/結(jié)構(gòu)布局 533
13.6 非托管約束 541
13.7 本章小結(jié) 546
第14章 高級技巧 547
14.1 Span和Memory 547 14.2 Unsafe 568
14.3 面向數(shù)據(jù)設(shè)計 573
14.4 未來特性 585
14.5 本章小結(jié) 595
第15章 編程API 597
15.1 GC API 597
15.2 CLR Hosting 609
15.3 ClrMD 616
15.4 TraceEvent庫 621
15.5 自定義GC 623
15.6 本章小結(jié) 626

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號