《.NET性能优化》_姚琪琳等译_2018-08-01

[复制链接]
查看470 | 回复1 | 2019-11-24 17:54:26 | 显示全部楼层 |阅读模式




内容简介:

内容简介:

目录
52集合
4.2.2清理与压縮阶段
52.1并发集合
4.2.3固定
4.3垃圾回收器的特征
53自定义集合
43.1垃圾回收时暂停线程……83
53.1分离集(并查集)
43.2在垃圾回收时挂起线程…8
53.2跳跃表
43.3工作站垃圾回收
5.3.3一次性集合
4.3.4服.务.器垃圾回收
54小结
43.5切换垃圾回收特征
第6章并发和并行…
44.1“代”模型的假设
61挑战与所得
44.2NET中“代”的实现……90
62从线程到线程池,再到任务……143
44.3大对象堆
62.1任务并行
444跨代引用
622数据并行
4.4.5后台垃圾回收
4.5垃圾回收段和虚拟_内.存_………
9?
62.3C#5异步方法
62.4TPL中的高緩模式
46终结化
4.6.1手动确定性终结化
63.1无锁代码
4.6.2自动的非确定性终结化…100
63.2 Windows同步机制
4.6.3非确定性终结的缺点……102
6.33缓存
4.64 Dispose模式…
64通用的GPU计算
47弱引用
64.1C++AMP简介
4.8使用垃圾回收器
64.2矩阵相乘
4.82使用CLR宿主与垃圾
644tle和共享_内.存_
回收器进行交互
65小结…………
4.8.3垃圾回收触发器
49垃圾回收性能最佳实践
第7章网络、O和序列化
代”模型
IO基本概念
1.1同步与异步1O……176
4.9.3终结化
7.1,2IO
494其他建议与最佳实践……114
713NET线程池
4.10小结
7.1.4_内.存_复制
第5章集合和泛型
分散-聚集LO
7.3文件LO
5.1泛型
73.1缓存提示
5.1.1NET泛型
732非缓存IO
5.1.2泛型约束
74网络LO
5.1.3CLR泛型的实现
7.4.1网络协议

42网络套接字
.辅。助.库
7.5数据序列化与反序列化
原生代码
5.1序列化基准测试
互操作
214
7.52数据集( DataSet)
86互操作的最佳实践
序列化
87小结
7.6 Windows通信基础类库
第9章算法优化
7.6,1限流
7.6,2处理模型
190
91复杂度的维度
763缓存
91.1大O复杂度
764异步wCF客户瑞与
9.1.2主定理
217
服.务.器
913图灵机与复杂度分类…218
6.5绑定
7.7小结
9.1.5NP完全问题
第8章不.安.全.的代码以及互操作…194
9.1.6记忆与动态规划
9.L.7编辑距离
8.不.安.全.的代码
9.1.8每对顶点间的最短路径…224
8.1.1对象固定与垃圾回收
92近似算法
9,2.1旅行商问题
81,2生存期管理
922最大割
81.3分配非托管_内.存_
93概率算法
81.4_内.存_池
93.1概率最大割
8.2平台调用…………
932费马质数测试…………228
8.2.1 PInvoke net 5 P/Invoke
94索引与压缩
228
Interop Assistant软件
94.1变量的长度编码
82.2绑定
942压缩索引
823列集器存根程序
230
824原生同构类型
204第10章性能模式………
825列集方向、值类型和引用
类型的列集
10.1JT编译器优化
232
82.6代码访问.安.全.性
10.1.1标准的优化方法
8.3COM互操作性
10.1.2方法内联
10.13消除边界检查
832单元列集
8.3.3TLB导入与代码访问
.安.全.性…………………209
10.1.6使用NGen进行JT预
834无主互操作程序集
NoPIA
209
10.1.7多核后台T编译
8.3.5异常
102关于启动性能的其他技巧
84C++CLI语言扩展
102.1将强命名程序集置于
仅供非商业用途或交流学习使用

GAC中
123创建异步页面
10.22防止本机镜像发生地址
1124创建异步控制器
11.3 ASPNET环境调优
1023减少程序集数目
113.1关闭 ASPNET跟踪和
10.3处理器相关的优化
103.1单指令多数据流
11.3.2关闭视图状态
03.2指令级別并行
1134对 ASPNET应用程序进行
104异常
预编译
0.5反射
11.3.5 ASPNET_进.程_模型
10.6.1直接用源代码生成
14配置Is
114.1输出缓存
10.62用动态轻量级代码生成技
14.2应用程序池配置
术(LCG)生成代码…253
115网络优化
274
10.7小结
11.5.1使用HTTP缓存头……274
第11章Web应用性能
11.5.2启用ⅡS压缩
11.5.3精简与合并
11.1测试Web应用的性能
11.54使用内容发布网络
11.1.1 Visual Studio Web性能
( CDN
测试和压力测试
11.6对 ASPNET应用程序进行扩容
11.1.2HTTP监控工具
(scaling)

116.1向外扩容
112提高web服.务.器的性能
1.6.2 ASPNET扩容机制
缓存公用对象
116,3向外扩客的隐患
112.2使用异步页面、模块和
283
控制器

第1章
性能指标
在开启NET性能之旅前,我们需要首先理解性能测试和优化的指标及目标。在第2章会探究
系列分析和监控工具。不过在此之前,需要确定哪些性能指标是值得关注的
应用程序有不同的类型,其性能目标也各不相同,而它们与业务及运营需求密切相关。有些时
候,应用程序架构决定了关键的性能指标。例如,你的Web服.务.器假如需要支撑数百万并行用户
则必然要引入多台服.务.器来实现分布式系统及负载均衡。而对于另外一些情况,性能度量结果决定
应用程序的架构。我们遇到过的大量案例都是在压力测试后系统不得不翻新架构,甚至更糟的是
它们直接在生产环境中崩溃了
就我们过去的经验来看,相比中途贸然进行性能优化,事先确定系统的性能目标与其环境约束
的做法更有针对性。下面是过去几年来我们诊断和修复的部分案例
某台强劲的web服.务.器上出现了严重性能问题,我们发现该问题是由测试工程师使用的低延
迟4 Mbit/s共享链接引起的。由于不了解关键性的性能指标,工程师们花费了数天时间来调
整web服.务.器的性能,而事实上它一切正常
·为了改进一个富UI应用程序的滚动性能,我们调整了CLR垃圾回收器的行为,从表面上来
看,两者并不相关。然而,通过精确控制_内.存_分配的时机与调整垃圾回收(GC)的工作模
式,我们去除了影响用户多时的U延迟问题
我们把一个硬盘移到了SATA端口,以此规避微软SCSI磁盘驱动里的缺陷(bug),让编译
性能提高了10倍
考虑到系统的伸缩性和CPU负载,我们调整了WCF序列化机制,从而把一个WCF服务中
消息尺寸减少了90&, {"words": "·我们进行了代码压缩,并仔细剥离启动时无须加载的依赖组件,把一个拥有300个程序集的
·我们进行了代码压缩,并仔细剥离启动时无须加载的依赖组件,把一个拥有300个程序集的
大型应用程序,在一组过时硬件上的启动时间从35s减少到了12s
这些案例覆盖了各式各样的系统,从低功耗的触摸设备到拥有强大图形功能的高端用户工作站
直到多服.务.器的数据中心。它们展现了各种包含大量细节元素的独特性能特征。在本章中,我们将
大致浏览一下常见现代软件类型中的各种性能指标。下一章里,我们将会说明如何准确测量这些指
标,另外还展示了如何系统地优化它们。
1.1性能目标
性能目标基本上取决于应用程序的外延和架构。当需求确定之后,你便需要决定大体的性能目
仅供非商业用途或交流学习使用

第1章性能指标
表1-2
性能指标列表(部分)
性能指标
单位
本书所在章
使用率
百分比
所有章
物理/虚拟_内.存_占用
节(B),千字节
KB,兆字节(MB)吉字节(GB)第4章、第5意
爱存失效
第5章、第6章
页面失效
次,次秒
数据库访问次数及耗时
次,次秒,毫秒(ms)
_内.存_分配
对象数量,次
第3章、第4章
执行时间
所有章
网络操作
次,次秒
第7章、第11章
磁盘操作
响应时间
垃圾回收
次,次秒,耗时(毫秒),占总时间百分比
第4章
抛出异常
次,次秒
第10章
启动时问
第6章
软件开发生命周期中的性能
你会在软件开发周期中的哪个阶段关注性能问题?这个貌似天真的问题实际上承载着将性能改
进内建到现有流程的重担。一个“健康”的做法,是把开发周期中的每个步骤都当做是一个更好地
理解应用程序性能的机会。首先,定义性能目标和重要的指标。其次,判断应用程序是达到还是超
过了这个目标。最后,考虑是否为系统的维护、用户负载及需求的变化引入回归测试。
(1)在需求收集阶段,开始思考该设置怎样的性能目标。
(2)在架构设计阶段,提炼出各项重要的性能指标,并定义具体的性能目标
在软件开发阶段,对原型代码或局部实现的功能进行比较频繁的探索式性能測试,确保满
足系统的性能目标
(4)在产品测试阶段,进行大量的负载测试和性能测试,用于检.测是否完全满足系统的性能目标
在剩下的开发与维护阶段,对每个版本进行额外的负载测试和性能测试(每天或每周),快速发
现系统中的性能退化
开发一套自动负载测试和性能测试工具,然后搭建一个独立的实验环境,并仔细分析测试结果
来保证没有性能退化,这些都是一些十分耗时的事情。不过,这种系统化的性能测量和改进,以及
确保系绕性能不会逐渐退化的开发过程,能够为产品带来可靠的性能回报,因此,十分值得进行早
期投资
1.3小结
本章旨在帮助你打开性能指标和性能目标的世界之窗,确保你能够了解什么是性能度量并识别
重要的性能指标,这是比具体的性能测量更重要的事情,后者是下一章会讨论的内容。本书余下的
部分,则会使用各式工具来度量性能,并提供改进与优化性能的指导
仅供非商业用途或交流学习使用



链接: https://pan.baidu.com/s/1yimqlLm02Y2Vw1L6o5S6Zg 提取码: ss49#############################################


回复

使用道具 举报

wutiwl | 2020-1-26 14:59:58 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则