性能指南
本文翻译自 Abseil 官网的 Performance Guide。
这份性能指南由 Abseil 的一组“每周性能技巧”(Performance Tips of the Week)组成。你可以把它看作一份关于“如何有效分析并优化生产环境中的性能和资源使用”的实践集:其中汇集了在 Google 数据中心机器上优化生产系统性能时得到的经验教训,既有应该做的事情,也有应该避免的做法。
这一系列技巧最初是 Google 内部的连载,后来非常受欢迎,每月有数千名读者,也发布了几十期内容。Abseil 将其中一部分开放给更广泛的外部读者,因为这些文章讨论的问题在整个软件行业中都很常见。发布这些内容的目的,是希望传播生产环境优化与性能分析方面的知识;Abseil 认为,这一领域的重要性一如既往。希望你能从这些技巧中受益,也欢迎反馈。
注意:已发布文章的编号并不连续。Abseil 保留了原始编号,以便作者更容易引用和追踪这些文章。在合适的地方,这个系列也会使用较短的别名 fast,这复用了 Google 内部的命名习惯:在代码讨论、缺陷报告以及其他发布内容中,经常会看到人们把这些文章称为 fast/55 或 fast/23。随着更多文章发布,编号中的空缺会逐步补上。
有些技巧可能包含历史信息。这些信息虽然准确,但可能反映的是文章最初写作时的理念或用法。大多数情况下,Abseil 已经把这些内容更新为当前实践;如果某些内容属于历史例外,也会在文中说明。
由于这些技巧并不是按原始顺序发布的,下面的列表按重新发布的顺序排列。
文章目录
- Abseil 性能指南
- 性能优化建议
- 每周性能技巧 #97:良性生态循环
- 每周性能技巧 #99:用 llvm-mca 照亮处理器核心
- 每周性能技巧 #98:测量也有投资回报率
- 每周性能技巧 #26:借助哈希表分析来修复问题
- 每周性能技巧 #95:远距离的诡异作用
- 每周性能技巧 #94:在数据不完美的世界中做决策
- 每周性能技巧 #93:机器人从不睡觉
- 每周性能技巧 #90:如何进行估算
- 每周性能技巧 #88:测量方法:避开软糖豆陷阱
- 每周性能技巧 #87:双向门
- 每周性能技巧 #62:识别并减少内存带宽需求
- 每周性能技巧 #72:优化“优化”这件事
- 每周性能技巧 #79:一次最多只做一个权衡
- 每周性能技巧 #83:减少内存间接访问
- 每周性能技巧 #74:不要把路灯扫到地毯下面
- 每周性能技巧 #75:如何做微基准测试
- 每周性能技巧 #70:定义并衡量优化是否成功
- 每周性能技巧 #60:进程内性能分析:经验教训
- 每周性能技巧 #64:用更好的 API 设计延续摩尔定律
- 每周性能技巧 #52:配置旋钮是有害的
- 每周性能技巧 #7:面向应用生产效率进行优化
- 每周性能技巧 #21:提升正则表达式的效率
- 每周性能技巧 #39:警惕带着礼物来的微基准测试
- 每周性能技巧 #53:使用硬件性能计数器精确测量 C++ 基准
- 每周性能技巧 #9:过了黄金期的优化