《提高C++性能的编程技术》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)多夫·布尔卡,(美)大卫·梅休著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2011
  • ISBN:9787121129377
  • 页数:272 页
图书介绍:本书揭示了C++开发高效应用的潜力,向广大读者展示了大量实用的C++面向对象编程技术。通过改善普遍藏匿于设计编码过程暗处的缺陷,这些技术无一不为C++的性能提升带来最为强劲的动力。本书详细讨论了临时对象、内存管理、继承、虚函数、内联、引用计数以及STL等一切有可能提升C++效率的细节内容。最终,该书将C++性能提升的各种终极利器,完美地呈现在广大读者的面前!

导读 1

第1章 跟踪实例 10

1.1初步跟踪的实现 12

1.2要点 18

第2章 构造函数和析构函数 20

2.1继承 20

2.2复合 32

2.3缓式构造 34

2.4冗余构造 37

2.5要点 41

第3章 虚函数 43

3.1虚函数的构造 43

3.2模板和继承 46

3.3要点 51

第4章 返回值优化 52

4.1按值返回机制 52

4.2返回值优化 54

4.3计算性构造函数 57

4.4要点 58

第5章 临时对象 59

5.1对象定义 59

5.2类型不匹配 60

5.3按值传递 63

5.4按值返回 64

5.6使用oP=()消除临时对象 66

5.7要点 67

第6章 单线程内存池 69

6.1版本0:全局函数new()和delete() 70

6.2版本1:专用Rational内存管理器 71

6.3版本2:固定大小对象的内存池 76

6.4版本3:单线程可变大小内存管理器 80

6.5要点 87

第7章 多线程内存池 88

7.1版本4:实现 88

7.2版本5:快速锁定 91

7.3要点 95

第8章 内联基础 96

8.1什么是内联? 96

8.2方法调用的代价 100

8.3因何内联? 105

8.4内联详述 105

8.5虚方法的内联 107

8.6通过内联提升性能 108

87要点 109

第9章 内联——站在性能的角度 110

9.1调用间优化 110

9.2何时避免内联? 115

9.3开发阶段及编译期的内联考虑 118

9.4基于配置的内联 119

9.5内联规则 123

9.6要点 125

第10章 内联技巧 126

10.1条件内联 126

10.2选择性内联 127

10.3递归内联 129

10.4对静态局部变量进行内联 134

10.5与体系结构有关的注意事项:多寄存器集 136

10.6要点 137

第11章 标准模板库 138

11.1渐近复杂度 138

11.2插入 139

11.3删除 146

11.4遍历 149

11.5查找 150

11.6函数对象 152

11.7比STL更好? 154

11.8要点 157

第12章 引用计数 158

12.1实现细节 160

12.2已存在的类 172

12.3并发引用计数 175

12.4要点 179

第13章编码优化 180

13.1缓存 182

13.2预先计算 183

13.3降低灵活性 184

13.4 80-20法则:加快常用路径的速度 185

13.5延迟计算 189

13.6无用计算 191

13.7系统体系结构 192

13.8内存管理 193

13.9库和系统调用 194

13.10编译器优化 197

13.11要点 198

第14章设计优化 200

14.1设计灵活性 200

14.2缓存 204

14.3高效的数据结构 208

14.4延迟计算 208

14.5 getpeername() 209

14.6无用计算 212

14.7失效代码 213

14.8要点 214

第15章可扩展性 215

15.1对称多处理器架构 217

15.2 Amdahl定律 218

15.3多线程和同步 220

15.4将任务分解为多个子任务 221

15.5缓存共享数据 222

15.6无共享 224

15.7部分共享 226

15.8锁粒度 228

15.9伪共享 230

15.10惊群现象 231

15.11读/写锁 233

15.12要点 234

第16章系统体系结构相关话题 235

16.1存储器层级 235

16.2寄存器:存储器之王 237

16.3磁盘和内存结构 241

16.4缓存效应 244

16.5缓存抖动 246

16.6避免跳转 247

16.7使用简单计算代替小分支 248

16.8线程化的影响 249

16.9上下文切换 251

16.10内核交叉 254

16.11线程化选择 255

16.12要点 257

参考文献 258

索引 260