更新时间:2023-11-09 19:35:26
封面
版权信息
译者序
前言
致谢
作者简介
第1章 导读
1.1 为什么需要性能调优
1.2 谁需要做性能调优
1.3 什么是性能分析
1.4 本书的主要内容
1.5 本书不包含什么内容
1.6 本章总结
第一部分 现代CPU性能分析
第2章 性能测量
2.1 现代系统中的噪声
2.2 生产环境中的性能测量
2.3 自动检测性能退化问题
2.4 手动性能测试
2.5 软件计时器和硬件计时器
2.6 微基准测试
2.7 本章总结
第3章 CPU微架构
3.1 指令集架构
3.2 流水线
3.3 利用指令级并行
3.4 利用线程级并行
3.5 存储器层次
3.6 虚拟内存
3.7 单指令多数据多处理器
3.8 现代CPU设计
3.9 性能监控单元
第4章 性能分析中的术语和指标
4.1 退休指令与执行指令
4.2 CPU利用率
4.3 CPI和IPC
4.4 微操作
4.5 流水线槽位
4.6 核时钟周期和参考时钟周期
4.7 缓存未命中
4.8 分支预测错误
第5章 性能分析方法
5.1 代码插桩
5.2 跟踪
5.3 负载表征
5.4 采样
5.5 屋顶线性能模型
5.6 静态性能分析
5.7 编译器优化报告
5.8 本章总结
第6章 性能分析相关的CPU特性
6.1 自顶向下微架构分析技术
6.2 最后分支记录
6.3 基于处理器事件的采样
6.4 Intel处理器跟踪技术
6.5 本章总结
第二部分 基于源代码的CPU调优
第7章 CPU前端优化
7.1 机器码布局
7.2 基本块
7.3 基本块布局
7.4 基本块对齐
7.5 函数拆分
7.6 函数分组
7.7 基于剖析文件的编译优化
7.8 对ITLB的优化
7.9 本章总结
第8章 CPU后端优化
8.1 内存绑定
8.2 核心绑定
8.3 本章总结
第9章 优化错误投机
9.1 用查表替换分支
9.2 用断言替换分支
9.3 本章总结
第10章 其他调优
10.1 编译时计算
10.2 编译器内建函数
10.3 缓存预热
10.4 减少慢速浮点运算
10.5 系统调优
第11章 优化多线程应用程序
11.1 性能扩展和开销
11.2 并行效率指标
11.3 使用Intel VTune Profiler进行分析
11.4 使用Linux perf进行分析
11.5 使用Coz进行分析
11.6 使用eBPF和GAPP进行分析
11.7 检测一致性问题
11.8 本章总结
附录A 减少测量噪声
附录B LLVM向量化程序
跋
术语
参考文献
推荐阅读
译者简介
封底