.NET性能优化 封面

.NET性能优化

暂无评分
章节数
11
ISBN
9787115485861

标签

内容简介

本书是《Pro .NET Performance》的中文译本,三位作者均来自 SELA Group 的性能与排错团队,长期为微软技术社区与客户提供性能调优咨询服务。全书共 11 章,围绕“先度量、再优化”的主线展开:第 1、2 章确立性能目标与衡量标准,系统介绍性能计数器、Windows 事件追踪(ETW)、Visual Studio 时间分析器与内存分配分析器、ANTS Memory Profiler、SciTech .NET Memory Profiler 等工具,并特别讨论了微基准测试的常见设计陷阱与编写准则。第 3、4 章深入 CLR 内部,剖析引用类型与值类型的存储与分发机制、方法表、同步块索引、装箱开销,以及垃圾回收的分代模型、大对象堆、跨代引用、后台 GC、终结化与 Dispose 模式、弱引用和固定(pinning)等细节,并归纳出可落地的 GC 最佳实践。第 5 至第 8 章与第 11 章分别讨论泛型与集合的实现代价、缓存与自定义集合、从线程到线程池再到任务并行库的并发模型、无锁编程与同步机制、C++ AMP 的 GPU 计算、同步与异步 I/O、I/O 完成端口、分散-聚集 I/O、序列化与 WCF 调优、unsafe 代码与平台调用,以及 ASP.NET 应用与 JIT 编译相关的调优手段。第 9 章简述复杂度理论,第 10 章收录启动时间优化、异常与反射等独立话题。

编辑推荐

很多性能优化的书只给结论——“字符串要用 StringBuilder”“反射要少用”,却很少讲清这些结论背后的代价与适用边界。本书的可贵之处在于把“度量”放在最前面:先弄清性能目标,再用性能计数器、ETW、采样/检测分析器和内存分析器把瓶颈量化出来,然后再谈优化。作者长期在一线做生产环境排错,因此对 CLR 内部的讲解并非学院式的原理罗列,而是紧贴着“这会让程序慢多少、怎么测、怎么改”展开:方法表与接口分发、装箱、代际 GC、大对象堆、终结化、I/O 完成端口、无锁代码、unsafe 与 P/Invoke,每一个都能在真实项目里找到对应的问题。书中配有大量 C# 示例,也坦诚比较了托管语言相对 C++ 的取舍,帮助读者建立对底层的直觉。需要说明的是,本书成书于 .NET Framework 与 C# 5 时代,第 11 章的 ASP.NET 与 WCF 内容已偏年代感,但性能度量的方法论、CLR 内存模型与并发原理依然通用,配合现代工具(如 dotnet-counters、BenchmarkDotNet)阅读收益最大。译者团队来自 ThoughtWorks,术语处理较为严谨。

适合谁读

适合

  • 有 C# 与 .NET 开发经验、想系统理解 CLR 内部机制的中高级开发者
  • 正在排查线上接口变慢、内存上涨、GC 停顿等问题的后端工程师
  • 需要做容量评估与性能基线测试的技术负责人
  • 希望从“背调优口诀”转向“用数据做优化”的程序员

不适合

  • 没有 C#/.NET 基础、想找入门教程的初学者
  • 只关注 .NET 6+ 新特性与云原生工具链、希望书中有最新内容的读者
  • 寻找前端或数据库专项调优内容的读者

阅读建议

  1. 先读第 1、2 章建立度量习惯,遇到问题时再回查第 3、4 章的内存与类型细节。
  2. 阅读时同步用 BenchmarkDotNet、dotnet-counters、PerfView 在当前 .NET 版本上复现书中示例,把旧结论更新到新运行时。
  3. 第 11 章 ASP.NET 与 WCF 部分只取思路,具体实践请结合现代 ASP.NET Core 文档。
  4. 把每章的“小结”与最佳实践清单抄成自查表,用于代码评审和性能回归测试。

出版社简介

人民邮电出版社 中国 · 成立于 1953 年

人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。

目录

  1. 第1章 性能指标
  2. 第2章 性能度量
  3. 第3章 类型揭秘
  4. 第4章 垃圾回收
  5. 第5章 集合和泛型
  6. 第6章 并发和并行
  7. 第7章 网络、I/O和序列化
  8. 第8章 不安全的代码以及互操作
  9. 第9章 算法优化
  10. 第10章 性能模式
  11. 第11章 Web应用性能

常见问题

这本书和《编写高性能的.NET代码》有什么区别?
两者都讲 CLR 与托管代码性能,但侧重不同。《编写高性能的.NET代码》更偏“如何写出快的代码”的工程实践;本书则更强调性能度量方法论与 CLR 内部实现,适合想弄懂“为什么慢”的读者。
原版是《Pro .NET Performance》吗?
是的。本书译自 Sasha Goldshtein、Dima Zurbalev、Ido Flatow 合著的《Pro .NET Performance: Optimize Your C# Applications》,由人民邮电出版社 2018 年出版,ISBN 9787115485861。
书里的内容对 .NET 6/8 还有用吗?
性能度量思路、类型系统、垃圾回收的分代模型、并发与 I/O 原理依然适用;但 ASP.NET、WCF 等具体框架章节已过时,工具也需换成 dotnet-counters、dotnet-trace、PerfView 等现代版本。
需要什么基础才能读懂?
需要熟悉 C# 语法与 .NET 框架的常用类库,了解线程、异步等基本概念。书中涉及 IL、方法表、P/Invoke 等内容时会有解释,但完全没有托管编程经验会读得比较吃力。
书中有代码示例可以下载吗?
原版《Pro .NET Performance》在 Apress 官网提供随书源代码下载;中文版示例与原文一致,可参照原书资源对照练习。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

同类高分