注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡網絡與數據通信.NET內存管理寶典

.NET內存管理寶典

.NET內存管理寶典

定 價:¥139.00

作 者: 康拉德·科克薩(Konrad Kokosa) 著
出版社: 清華大學出版社
叢編項:
標 簽: 計算機/網絡 硬件 外部設備 維修

購買這本書可以去


ISBN: 9787302571339 出版時間: 2021-03-01 包裝: 平裝
開本: 16開 頁數: 字數:  

內容簡介

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

作者簡介

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

圖書目錄

目  錄

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

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號