| ISBN | 出版时间 | 包装 | 开本 | 页数 | 字数 |
|---|---|---|---|---|---|
| 未知 | 暂无 | 暂无 | 未知 | 0 | 暂无 |
序
引言
第1章 跟踪范例
1.1 初步的跟踪实现
1.1.1 发生了什么问题
1.1.2 恢复计划
1.2 要点
第2章 构造函数和析构函数
2.1 继承
2.2 合成
2.3 缓式构造
2.4 冗余构造
2.5 要点
第3章 虚函数
3.1 虚函数的构造
3.2 模板和继承
3.2.1 硬编码
3.2.2 继承
3.2.3 模板
3.3 要点
第4章 返回值优化
4.1 按值返回的构造
4.2 返回值优化
4.3 计算性构造函数
4.4 要点
第5章 临时对象
5.1 对象定义
5.2 类型不匹配
5.3 按值传递
5.4 按值返回
5.5 使用op=()消除临时对象
5.6 要点
第6章 单线程内存池
6.1 版本0:全局函数new()和delete()
6.2 版本1:专用Rational内存管理器
6.3 版本2:固定大小对象的内存池
6.4 版本3:单线程可变大小内存管理器
6.5 要点
第7章 多线程内存池
7.1 版本4:实现
7.2 版本5:快速锁定
7.3 要点
第8章 内联基础
8.1 什么是内联
8.2 方法调用代价
8.3 为何使用内联
8.4 内联详述
8.5 内联虚方法
8.6 通过内联获得性能
8.7 要点
第9章 内联——性能方面的考虑
9.1 调用间优化
9.2 为何不使用内联
9.3 开发阶段和编译时的内联考虑
9.4 基于配置的内联
9.5 内联规则
9.5.1 惟一
9.5.2 微小
9.6 要点
第10章 内联技巧
10.1 条件内联
10.2 选择性内联
10.3 递归内联
10.4 对静态局部变量进行内联
10.5 与体系结构有关的注意事项:多寄存器集
10.6 要点
第11章 标准模板库
11.1 渐近复杂度
11.2 插入
11.3 删除
11.4 遍历
11.5 查找
11.6 函数对象
11.7 比STL更好
11.8 要点
第12章 引用计数
12.1 实现细节
12.2 已存在类
12.3 并发引用计数
12.4 要点
第13章 代码优化
13.1 缓存
13.2 预先计算
13.3 降低灵活性
13.4 80-20规则:提高常用路径的速度
13.5 缓式计算
13.6 无用计算
13.7 系统体系结构
13.8 内存管理
13.9 库和系统调用
13.10 编译器优化
13.11 要点
第14章 设计优化
14.1 设计灵活性
14.2 缓存
14.2.1 Web服务器时间戳
14.2.2 数据扩展
14.2.3 公用代码陷阱
14.3 高效的数据结构
14.4 缓式计算
14.5 无用计算
14.6 失效代码
14.7 要点
第15章 可伸缩性
15.1 SMP体系结构
15.2 Amdahl法则
15.3 多线程和同步术语
15.4 把一个任务分解成多个子任务
15.5 缓存共享数据
15.6 无共享
15.7 部分共享
15.8 锁的粒度
15.9 伪共享
15.10 Thundering Herd
15.11 读/写锁
15.12 要点
第16章 系统体系结构相关性
16.1 内存层次
16.2 寄存器:内存之王
16.3 磁盘和内存结构
16.4 缓存影响
16.5 缓存颠簸
16.6 避免跳转
16.7 简单计算胜过小分支
16.8 线程影响
16.9 上下文切换
16.10 内核交叉
16.11 线程选择
16.12 要点
参考文献