我正在寻找可以帮助我深入了解 C++ 性能的资源(最好是一本书)。这里有一点背景:
我编写具有非常高的吞吐量要求和/或低延迟要求的服务器软件。我们用 C++ 编写;目前还没有真正的争论。我的大多数同事似乎对 C++ 性能有了更好的理解。他们有更好的心智模型,因此他们可以判断某段代码何时会在规模上表现不佳。我缺乏这种理解,所以我正在寻求改善我的心理模型。
我特别感兴趣:
- 了解缓存效果,以及对象布局导致的缓存局部性如何影响我的代码性能。这是我团队的其他成员似乎提出的第一个问题。
- 了解内存分配如何影响性能。我应该使用 TCMalloc(或其他 malloc)吗?我应该怎么知道?我应该如何调整各种分配和释放参数?
- 我怎么知道对象复制的开销何时重要(例如,应该切换到指针)?
- 只要我知道何时使用它们,我通常也对“优化”感兴趣。
我不太感兴趣的事情:
- “高性能计算”这个术语似乎表示更多面向数学/模拟的应用程序。
- 讨论 C++ 相对于其他语言的性能,因为我坚持使用 C++。
作为起点,有人知道这本书Efficient C++是否符合要求?