如何使用cachegrind输出来优化应用程序

raj*_*air 8 valgrind daemon throughput

我需要提高系统的吞吐量.

通常的优化周期已经完成,我们已经实现了1.5倍的更高吞吐量.

我现在开始怀疑是否可以利用cachegrind输出来提高系统的吞吐量.

有人能指点我如何开始吗?

据我所知,我们需要确保最常用的数据应保持足够小,以便它保留在L1缓存中,下一组数据应该适合L2.

这是我正在采取的正确方向吗?

Lau*_*nis 6

确实,cachegrind输出本身并没有提供太多关于如何优化代码的信息.人们需要知道如何解释它以及你所说的关于数据拟合到L1和L2的内容确实是正确的方向.

为了完全理解内存访问模式如何影响性能,我建议阅读GNU libc维护者Ulrich Drepper撰写的一篇优秀论文"每个程序员应该知道的内存".