Grady序 3
Paul序 3
前言 3
第一部分 概述 3
第1章 引言 3
1.1 软件和性能 3
1.1.1 响应性 3
1.1.2 可伸缩性 4
1.2 性能的重要性 5
1.2.1 性能失败的影响 6
1.2.2 性能失败的原因 7
1.2.3 获得成功 8
1.3 如何管理性能 9
1.3.1 被动性能管理 9
1.3.2 主动性能管理 10
1.4 软件性能工程 11
1.4.1 SPE建模策略 12
1.4.2 SPE模型 12
1.5 面向对象系统的SPE 13
1.5.2 SPE需要什么 14
8.6.1 探测的设计考虑 14
1.5.1 SPE的成本是多少 14
1.6 小结 15
第2章 SPE快速浏览 16
2.1 面向对象系统的SPE过程 16
2.2 案例研究 19
2.2.1 评估性能风险(第l步) 19
2.2.2 确定关键用例(第2步) 19
2.2.3 选择关键性能场景(第3步) 20
2.2.4 建立性能目标(第4步) 21
2.2.5 构造性能模型(第5步) 21
2.2.6 确定软件资源需求(第6步) 21
2.2.7 增加计算机资源需求(第7步) 22
2.3 统一软件过程中的SPE 24
2.2.9 验证和确认模型(第9步) 24
2.2.8 评价模型(第8步) 24
2.4 性能解决方案 25
2.4.1 性能原则 25
2.4.2 性能模式 26
2.4.3 性能反模式 26
2.4.4 实现解决方案 26
2.5 小结 27
第3章 SPE和UML 28
3.1 简介 28
3.2 扩展UML 28
3.3 用例和场景 29
3.2.1 构造型 29
3.2.2 标签值 29
3.2.3 约束 29
3.3.1 用例 30
3.3.2 场景 31
3.4 扩展顺序图符号 33
3.4.1 实例分解 33
3.4.2 循环、分支和引用 33
3.5.1 定时标记 35
3.5 规定时间 35
3.5.2 时间表达式 36
3.5.3 定时约束 36
3.5.4 顺序图中的时间 36
3.6 并发 37
3.6.1 线程和进程 38
3.6.2 Coregions 38
3.6.3 并行组合 39
3.6.4 同步 39
3.7 小结 41
第二部分 SPE模型 45
第4章 软件执行模型 45
4.1 目的 45
4.2 表示软件执行模型 46
4.2.1 执行图 46
4.2.2 执行图限制 49
4.3 模型解决方案 50
4.3.1 基本求解算法 51
4.4 分析过程 53
4.3.2 更先进的求解技术 53
4.5 由顺序图派生出的执行图 56
4.6 ICAD案例研究 56
4.6.1 体系结构l 57
4.6.2 体系结构2 61
4.6.3 结果分析 62
4.6.4 体系结构3 63
4.7 建模提示 65
4.8 小结 66
第5章 Web应用及其他分布式系统 67
5.1 简介 67
5.2 Web应用 68
5.3 分布式对象技术 69
5.3.1 中间件 70
5.3.2 分布式对象技术的局限性 70
5.3.3 利用分布式对象技术进行有效开发 72
5.4 为分布式系统交互建模 72
5.4.1 系统交互的类型 73
5.4.2 软件执行模型表示 75
5.4.4 软件模型的近似求解 76
5.4.3 描述中间件开销 76
5.5 举例:Web电子商务应用 77
5.5.1 数据库场景 80
5.5.2 订购过程场景 81
5.5.3 实例小结 82
5.6 建模提示 82
5.7 小结 82
6.1 引言 84
第6章 系统执行模型 84
6.2 系统模型基础 85
6.2.1 性能度量标准 86
6.2.2 求解排队模型 88
6.2.3 排队网络 89
6.3 从软件模型结果得到系统模型参数 92
6.4 利用系统模型进行SPE 94
6.4.1 先进系统模型 95
6.4.2 可选的求解方法 95
6.4.3 可调度性 96
6.5 分布式系统案例研究 96
6.6 建模提示 103
6.7 小结 104
第三部分 数据采集 107
第7章 SPE数据采集 107
7.1 简介 107
7.2 SPE数据需求 107
7.2.1 关键性能场景 108
7.2.2 性能目标 108
7.2.3 运行环境 109
7.2.4 软件资源需求 110
7.2.5 计算机资源需求 111
7.3 性能遍历 112
7.2.6 数据采集问题 112
7.3.1 主题 113
7.3.2 何时进行性能遍历 114
7.3.3 举例 115
7.3.4 成功进行性能遍历的提示 120
7.4 资源估算技术 122
7.4.1 使用测量 122
7.4.2 研究测量结果 122
7.4.3 请教顾问 122
7.4.6 估算I/O需求 123
7.4.4 最佳最差情况估算 123
7.4.5 估算什么 123
7.4.7 估算网络消息 124
7.5 小结 125
7.4.8 获得计算机资源需求 125
第8章 软件测量和探测 127
8.1 引言 127
8.2 应该测量什么 127
8.2.4 计算机资源的使用 129
8.3 规划性能测量 129
8.2.3 软件资源和处理开销 129
8.2.2 路径特征 129
8.2.1 负载数据和数据特征 129
8.3.2 性能基准程序 130
8.3.1 关键考虑事项 130
8.3.3 设计和指导测量研究 131
8.4 性能测量概念 133
8.4.1 术语 133
8.4.2 可能影响测量的因素 135
8.5 数据采集技术和工具 137
8.5.1 数据采集技术 137
8.5.2 测量SPE数据 139
8.6 探测技术 140
8.6.2 实现可选方案 142
8.6.3 数据报告 143
8.7 应用资源测量 143
8.8 小结 145
第四部分 性能解决方案 149
第9章 面向性能的设计 149
9.1 面向性能的设计原则 149
9.2 性能控制原则 149
9.2.2 探测原则 150
9.2.1 性能目标原则 150
9.3 独立原则 151
9.3.1 中心化原则 151
9.3.2 固定点原则 152
9.3.3 本地化原则 153
9.3.4 处理与频率原则 154
9.4 协作原则 155
9.4.1 共享资源原则 155
9.4.2 并行处理原则 156
9.4.3 分散负载原则 157
9.5 使用原则 157
9.6 小结 159
第10章 性能模式 160
10.1 概述 160
10.2 快速通道 161
10.2.1 问题 161
10.2.2 解决方案 162
10.2.3 优点 163
10.2.4 后果 163
10.3 重要事情优先 163
10.3.2 解决方案 164
10.3.1 问题 164
10.3.3 优点 165
10.3.4 后果 165
10.4 耦合 165
10.4.1 问题 165
10.4.2 解决方案 166
10.4.3 优点 166
10.4.4 后果 166
10.5 批处理 167
10.5.1 问题 167
10.5.2 解决方案 167
10.5.4 后果 168
10.5.3 优点 168
10.6 替代路由 169
10.6.1 问题 169
10.6.2 解决方案 169
10.6.3 优点 170
10.6.4 后果 170
10.7 弹性时间 171
10.7.1 问题 171
10.7.2 解决方案 171
10.8.1 问题 172
10.8 弱化周期性功能 172
10.7.4 后果 172
10.7.3 优点 172
10.8.2 解决方案 173
10.8.3 优点 173
10.8.4 后果 173
10.9 小结 173
第ll章 性能反模式 175
11.1 概述 175
11.2 “god”类 176
11.2.1 问题 176
11.2.2 解决方案 178
11.3 过量动态分配 178
l1.3.1 问题 179
11.3.2 解决方案 180
11.4 迂回寻宝 180
11.4.1 问题 181
11.4.2 解决方案 182
11.5 单行道桥梁 183
l1.5.1 问题 184
11.5.2 解决方案 184
11.7 小结 186
11.6.2 解决方案 186
11.6.1 问题 186
11.6 交通堵塞 186
第12章 实现解决方案 188
12.1 概述 188
12.2 性能调整 189
12.3 一般性能解决方案 191
12.3.1 快速通道加速法 192
12.3.2 改进可伸缩性 192
12.3.3 算法和数据结构的选择 195
12.3.4 时间与空间的折中 195
12.4 面向对象软件的性能解决方案 198
12.4.1 跨语言解决方案 198
12.3.5 硬件/软件平台的依赖性 198
12.4.2 C++解决方案 201
12.4.3 Java解决方案 201
12.5 小结 204
第五部分 应用 207
第13章 Web应用 207
13.1 引言 207
13.2 性能问题 208
13.3 Web应用的SPE模型 209
13.4 案例研究:Nachtfliegen.com 211
13.4.1 计划航线场景 213
13.4.2 软件模型 215
13.4.3 硬件/软件环境 216
13.4.4 资源需求 218
13.4.5 软件模型解决方案 219
13.4.6 性能改进 221
13.4.7 系统执行模型 221
13.4.8 灵敏度和可伸缩性分析 224
13.5 典型的性能问题 224
13.6 小结 226
第14章 嵌入式实时系统 228
14.1 引言 228
14.2.1 时间要求 229
14.2 嵌入式实时系统背景 229
14.2.2 硬件约束 230
14.2.3 实时操作系统 231
14.2.4 分布式系统 231
14.2.5 数据库 231
14.3 性能问题 231
14.3.1 响应时间和吞吐量 232
14.3.2 可调度性 232
14.4 嵌入式实时系统的sPE模型 234
14.5 案例研究:电话交换 235
14.5.1 概述 235
14.5.2 体系结构和设计 237
14.6 典型的性能问题 242
14.7 小结 245
第六部分 实现SPE 249
第15章 SPE过程 249
15.1 引言 249
15.2 SPE过程 250
15.2.1 评估性能风险 251
15.2.2 确定关键用例 251
15.2.3 选择关键性能场景 252
15.2.4 建立性能目标 252
15.2.5 构造性能模型 253
15.2.7 增加计算机资源需求 254
15.2.6 确定软件资源需求 254
15.2.8 评价模型 255
15.2.9 验证和确认模型 255
15.3 生命周期后期的SPE活动 256
15.3.1 更详细的模型 256
15.3.2 更精确的数据 257
15.3.3 性能测试 257
15.4 软件部署后的性能管理 258
15.4.1 演进性变化 258
15.3.4 基线模型 258
15.4.2 容量管理 259
15.5 SPE制品 259
15.5.1 性能管理计划 260
15.5.2 性能验证和确认计划 260
15.5.3 SPE配置管理计划 260
15.5.4 性能驱动因素 261
15.5.5 性能场景 261
15.5.6 性能目标 261
15.5.7 执行环境规格说明 261
15.5.8 性能模型 261
15.5.12 性能测试计划 262
15.5.11 性能验证和确认报告 262
15.5.9 模型结果 262
15.5.10 性能测量工具 262
15.5.13 性能测试结果 263
15.6 将SPE集成为软件过程的一部分 263
15.6.1 瀑布模型 263
15.6.2 螺旋模型 264
15.6.3 统一过程中的SPE 264
15.7 小结 266
16.1 引言 268
16.2 工具 268
第16章 实现SPE过程 268
16.2.1 建模工具 269
16.2.2 开发工具 270
16.3 采用和使用SPE 271
16.3.1 经验 271
16.3.2 关键考虑因素 273
16.3.3 试点项目 275
16.3.4 成功采用和使用SPE的关键因素 275
16.4 SPE实现策略 277
16.4.1 组织方面的问题 277
16.4.3 费用 278
16.4.2 谁支付SPE费用 278
16.4.4 风险 279
16.5 项目成功的关键因素 279
16.6 SPE的未来 280
16.7 小结 281
附录 285
附录A UML符号 285
A.1 用例图 285
A.2.1 基本顺序图 286
A.2.2 扩展的顺序图 286
A.2 顺序图 286
A.3 部署图 288
A.4 构造型、标签值和约束 288
A.4.1 构造型 288
A.4.2 标签值 288
A.4.3 约束 289
附录B SPE建模符号 290
B.1 执行图符号 290
B.1.1 基本节点 290
B.1.2 同步节点 290
B.2 信息处理图符号 291
参考文献 292