后记
感谢您阅读完整本书。希望您喜欢并从中有所收获。如果本书能帮助您解决实际问题,我会更加高兴。在这种情况下,我将把它视为成功,并证明我的努力没有白费。在您继续努力之前,让我简要强调本书的要点并为您提供最终建议:
- 硬件性能不像几十年前那样快速增长了。性能调优变得比过去 40 年来更加重要。它将是未来获得性能提升的主要驱动力之一。
- 软件默认情况下没有最佳性能。存在某些限制阻止应用程序发挥其全部性能潜力。硬件和软件组件都存在这样的限制。
- Donald Knuth 有句名言:“过早优化是所有问题的根源”。但反过来也经常是真的。推迟性能工程工作可能为时已晚,并可能像过早优化一样造成同样的危害。在设计未来产品时,不要忽视性能方面。
- 现代 CPU 的性能不是确定性的,取决于许多因素。有意义的性能分析应该考虑噪音并使用统计方法分析性能测量。
- 了解 CPU 微架构可能有助于理解您进行实验的结果。但是,在对代码进行特定更改时,不要过分依赖这些知识。您的心智模型永远不可能像 CPU 内部实际设计那样准确。预测特定代码片段的性能几乎是不可能的。
- 一定要测量!
- 性能调优很难,因为它没有预定的步骤需要遵循,没有算法。工程师需要从不同的角度解决问题。了解可用的性能分析方法和工具(硬件和软件)。我强烈建议拥抱 Roofline 模型和 TMA 方法,如果它们在您的平台上可用。它将帮助您将您的工作引导到正确的方向。此外,要知道何时可以利用其他硬件性能监控功能,例如 LBR、PEBS 和 PT。
- 了解应用程序性能的限制因素以及可能的修复方法。第二部分涵盖了一些针对每种类型 CPU 性能瓶颈的基本优化:前端受限、后端受限、回退、错误推测。使用第 8-11 章查看当您的应用程序属于上述四种类别之一时可用的选项。
- 如果修改带来的好处可以忽略不计,您应该保持代码最简单和最干净的形式。
- 有时,在系统上提高性能的修改会在另一个系统上减慢执行速度。请确保在您关心的所有平台上测试您的更改。
我希望这本书能帮助您更好地理解应用程序的性能和整体 CPU 性能。当然,它无法涵盖您在进行性能优化时可能遇到的所有情况。我的目标是为您提供一个起点,并向您展示在现代 CPU 上进行性能分析和调整的潜在选项和策略。
如果您喜欢阅读本书,请务必将其传递给您的朋友和同事。如果您能在社交媒体平台上宣传本书,我将不胜感激。
我非常欢迎您通过电子邮件 dendibakh@gmail.com 提供反馈。请告诉我您对本书的想法、评论和建议。我将在我的博客 https://easyperf.net/contact/ 上发布所有更新和未来有关本书的信息。
祝您性能调优愉快!