中图网文创礼盒,买2个减5元
欢迎光临中图网 请 | 注册

.NET内存管理宝典

出版社:清华大学出版社出版时间:2021-03-01
开本: 16开 页数: 644
中 图 价:¥104.3(7.5折) 定价  ¥139.0 登录后可看到会员价
加入购物车 收藏
运费6元,满69元免运费
?快递不能达地区使用邮政小包,运费14元起
云南、广西、海南、新疆、青海、西藏六省,部分地区快递不可达
本类五星书更多>

.NET内存管理宝典 版权信息

.NET内存管理宝典 本书特色

为什么要阅读本书 正如本书第14章14.3节所提到的,如下类型的应用程序十分需要本书的知识。 ·金融软件:特别是实时交易和所有需要基于大量各种数据以尽快得出答案的分析决策。 ·大数据:虽然大数据通常都是批量、慢速处理,但如果处理每笔数据都慢一点点,累加起 来就会将总体处理时间拉长数小时或数天。此外,有些应用程序,比如搜索引擎,同样需要快速得到问题的答案。 ·游戏:在一个以帧速率(FPS)决定游戏接受度和图像质量上限的世界中,每一毫秒都不能 浪费。 ·机器学习:使用日益广泛的机器学习(ML)需要越来越强的计算能力去执行各种复杂算法。除了开发以上应用程序之外,正如本书第1章开头所说的,如果你想成为一名高级程序员,你不想止步于代码能够工作,还想有追求,关心工作的质量,关心它是如何工作的,那么你应该读这本书。

.NET内存管理宝典 内容简介

了解.NET内存管理的内部工作原理、陷阱和技术,以便有效地避免软件中出现各种性能和可伸缩性问题。尽管.NET具有自动内存管理功能,但了解 .NET的内存管理工作原理以及如何*好地编写与之高效交互的软件方面仍有许多益处。《.NET内存管理宝典 提高代码质量、性能和可扩展性》是你通过了解和处理 .NET 中的内存管理来编写出更好软件的全面指南。 《.NET内存管理宝典 提高代码质量、性能和可扩展性》经过了 Microsoft 的 .NET 团队全面审查,包含 了25 个有价值的故障排除方案,旨在帮助诊断具有挑战性的内存问题。读者还将受益于多个 .NET 内存管理”规则”,这些规则介绍了编写内存感知代码的方法以及避免常见的破坏性陷阱的方法。 本书内容 ● 了解自动内存管理的理论基础 ● 深入研究.NET内存管理的各个方面,包括对垃圾回收(GC)实现的详细介绍,这些知识如果自行摸索需要多年经验才能获得 ● 获得如何将这些知识应用于实际软件开发中的实用建议 ● 使用与 .NET 内存管理相关工具的实用知识来诊断各种与内存相关的问题 ● 探索高级内存管理的各个方面,包括使用Span和Memory类型

.NET内存管理宝典 目录

目  录


第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

规则1 – 自学 34

第2章 底层内存管理 37

2.1 硬件 37

2.2 操作系统 55

2.3 NUMA和CPU组 70

2.4 本章小结 71

规则2 – 避免随机访问,拥抱循序访问 71

规则3 – 提高空间和时间数据局部性 72

规则4 – 不要放弃使用更高级技巧的可能性 72

第3章 内存测量 73

3.1 尽早测量 74

3.2 Windows环境 81

3.3 Linux环境 123

3.4 本章小结 135

规则5 – 尽早测量GC 137

第4章 .NET基础知识 139

4.1 .NET版本 139

4.2 .NET内部原理 141

4.3 程序集和应用程序域 148

4.4 进程内存区域 150

4.5 类型系统 161

4.6 字符串 173

4.7 装箱与拆箱 185

4.8 按引用传递 188

4.9 类型数据局部性 190

4.10 静态数据 193

4.11 本章小结 197

规则6 – 测量你的程序 197

规则7 – 不要假设内存泄漏不存在 198

规则8 – 考虑使用结构 198

规则9 – 考虑使用字符串暂存 198

规则10 – 避免装箱 198

第5章 内存分区 201

5.1 分区策略 201

5.2 按大小分区 202

5.3 按生存期分区 207

5.4 按物理分区 224

5.5 本章小结 241

规则11 – 监视代大小 241

规则12 – 避免不必要的堆引用 241

规则13 – 监视段使用情况 242

第6章 内存分配 243

6.1 内存分配简介 243

6.2 bump pointer分配 244

6.3 空闲列表分配 250

6.4 创建新对象 253

6.5 堆再平衡 260

6.6 OutOfMemoryException异常 262

场景6-1:OutOfMemoryException异常 263

6.7 堆栈分配 265

6.8 避免分配 266

6.9 本章小结 300

规则14 – 在性能攸关的地方,

避免堆分配 300

规则15 – 避免过多的LOH分配 301

规则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 垃圾回收性能调优数据 314

7.6 回收触发器 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

规则17 – 观察运行时挂起 405

规则18 – 避免“中年危机” 406

规则19 – 避免老的代和LOH碎片化 406

规则20 – 避免显式GC 407

规则21 – 避免内存泄漏 407

规则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

规则23 – 有意识地选择GC模式 439

规则24 – 记住延迟模式的相关知识 439

第12章 对象生存期 441

12.1 对象与资源的生命周期 441

12.2 终结 442

12.3 Disposable对象 463

12.4 安全句柄 468

12.5 弱引用 473

12.6 本章小结 486

规则25 – 避免终结器 486

规则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


展开全部

.NET内存管理宝典 作者简介

作 者 简 介 Konrad Kokosa是一位经验丰富的软件设计师和开发人员。他对Microsoft公司的技术特别感兴趣,同时对其他所有技术也充满好奇。Konrad从事编程工作已经有十多年,解决过.NET世界中的许多性能问题和架构难题,设计和提升过.NET应用程序的运行速度。他是一名独立顾问,是meetup和技术会议讲师,喜欢写Twitter。Konrad还分享了他作为.NET领域培训讲师的激情岁月,特别是在应用程序性能、编码优秀实践和诊断方面。他是华沙Web性能小组的创始人。他是Visual Studio和开发工具类别中的Microsoft MVP。他是Dotnetos.org的联合创始人。Dotnetos.org由三位.NET爱好者发起,主要组织.NET性能相关的会议。 译 者 简 介 叶伟民 《.NET并发编程实战》的译者。曾在美国旧金山工作,具有16年的.NET开发经验,目前从业于金融科技行业。 涂曙光 前微软技术专家,专注于.NET和JavaScript技术领域。目前在私募基金行业从事低延迟交易系统的开发。

商品评论(0条)
暂无评论……
书友推荐
编辑推荐
返回顶部
中图网
在线客服