编辑推荐
本书可以帮助你充分挖掘算法和应用的潜力,避免常见陷阱,优化程序性能,发挥竞争优势,降低运行成本,提高用户满意度。
本书通过介绍大量的分析器和度量工具来指导读者进行性能度量,并讲解了操作系统和CLR是如何以意想不到的方式来影响程序性能的,同时还通过可工作的示例和真实案例来演示性能改进。
通过阅读本书,读者可以学到:
* 找到并定位瓶颈,以获得****的性能效果;
* 使用垃圾回收器高效管理内存;
* 更深入地理解底层操作系统及其性能特点,从而更高效地编程;
* 通过并行化、缓存、微优化和许多其他的技术来提升应用程序的性能。
本书包含大量C#代码示例和技巧,可以帮助读者充分利用程序中每一处可能的性能提升,如降低内存占用、一致化CPU使用,减少网络和磁盘的I/O操作等。本书将会改变你对.NET程序开发的思考方式。
内容简介
本书详细解释了影响应用程序性能的Windows、CLR和物理硬件的内部结构,并为读者提供了衡量代码如何独立于外部因素执行操作的知识和工具。书中提供了大量的C#代码示例和技巧,将帮助读者****限度地提高算法和应用程序的性能,提高个人竞争优势,使用更低的成本获取更多的用户。
本书共11章,D1章和D2章关注性能的度量指标及性能评测;第3章和第4章则深入CLR内部,专注于类型与CLR垃圾回收的内部实现;第5~8章及D11章讨论.NET框架中的几个特定的方面,以及CLR提供的几种可用来进行性能优化的手段;第9章对复杂度理论和算法进行了简单的尝试;D10章则包含了一些独立话题,包括启动时间优化、异常及.NET反射等。
本书适合已经拥有一定C#语言和.NET框架的编程基础,对相关概念较为熟悉的中gao级程序员阅读学习。
作者简介
Sasha Goldshtein是微软公司Visual C#方向的MVP,也是SELA Group的首席技术官(CTO)。Sasha领导了SELA技术中心的性能与排错团队,并且在多个领域提供咨询服务,包括生产环境调试、应用程序性能排错及分布式架构。Sasha的经验主要集中在C#与C++应用程序开发,以及高可伸缩性和高性能系统架构等方面。他经常在微软公司的相关会议上发表演讲,并举办了如“.NET性能”“.NET调试”“深入Windows”等多项培训课程。
Dima Zurbalev是SELA Group性能与调试团队紧急响应组的高级咨询师。Dima在性能优化和排错上帮助客户完成了许多几乎不可能完成的任务,引导他们深入理解CLR及Windows的内部细节。他的大部分开发经验围绕.NET与C++基础项目进行,同时,他也在为CodePlex上的多个项目贡献代码。
Ido Flatow是微软公司Connected系统方向的MVP,也是SELA团队的高级架构师。他拥有超过15年的行业经验,目前是SELA的Windows Azure及Web领域的专家之一,专长为WCF、ASP.NET、Silverlight及IIS等技术。他是一名微软认证培训师(Microsoft Certified Trainer,MCT),也是微软官方WCF 4.0课程(10263A)的合作者。他同样也经常在微软公司的相关会议上发表演讲。
目录
- 第1章 性能指标 1
- 第2章 性能度量 5
- 分析器 27
- Profiler 36
- 分析工具 38
- 示例 41
- 第3章 类型揭秘 47
- 区别 48
- 分发 58
- 关键字 59
- 方法时产生装箱 67
- 第4章 垃圾回收 73
- 回收器进行交互 111
- 第5章 集合和泛型 119
- 第6章 并发和并行 142
- 第7章 网络、I/O和序列化 176
- 序列化 189
- 服务器 191
- 第8章 不安全的代码以及互操作 194
- 句柄 195
- Interop Assistant软件 199
- 类型的列集 205
- 安全性 209
- (NoPIA) 209
- 第9章 算法优化 216
- 第 10章 性能模式 232
- 编译 239
- GAC中 243
- 重排 243
- (SIMD) 245
- 代码 251
- 术(LCG)生成代码 253
- 第 11章 Web应用性能 258
- 测试和压力测试 259
- 控制器 262