【问题标题】:Determining C code's processor cache efficiency确定 C 代码的处理器缓存效率
【发布时间】:2010-12-01 17:38:51
【问题描述】:

我想确定给定的 C 代码如何有效地利用处理器缓存,如果可能,确定缓存中存在哪些数据以及存储在主内存中的数据(尽管这更像是一个不错的选择) - 有没有软件可以做到这一点?

我知道这可能不适合堆栈溢出的范围,尽管它当然与编程高度相关,因为我打算将它用作测试我正在编写的代码的工具。如果有更合适的地方,请告诉我/mods move this question。

此外,我(非常)更喜欢该软件用于 mac os x/unix。

谢谢!

【问题讨论】:

  • 效率不是取决于处理器吗,因为 C 编译器对缓存的使用没有太多控制——除了指令的选择吗?
  • @ring0 - 绝对如此,所以我希望软件能够适应正在测试的特定处理器(因此结果当然不适用于不同的处理器)。就 C 而言 - 该工具能够通过生成的调试符号以 C 代码的形式指示哪些代码是缓存未命中的热点、整个数据结构是否位于缓存中等,这将很有用.

标签: c caching code-analysis


【解决方案1】:

有多种分析器可以根据缓存未命中来捕获配置文件,以替代基于定期时间间隔的采样。这将使您了解程序中没有有效使用缓存的位置。在 Mac OS X 上查看 Shark(免费 - CHUD 工具包的一部分)。在 Linux 上尝试 Zoom(商业,但有 30 天免费评估许可证)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    相关资源
    最近更新 更多