gpt4 book ai didi

c++ - 分析指令缓存未命中

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:50:05 24 4
gpt4 key购买 nike

我想为代码中的每个非内联函数 f() 构建指令缓存惩罚的直方图。所以如果我的代码中总共有 k 个非内联函数,我想要 k 个单独的直方图。我想知道是否有任何已知的解决方案。

对于任何一个特定的函数 f1() 来说,一种天真的方法是在代码中找到所有对 f1() 的调用,在调用之前记录一个时间戳值调用,并在 f1() 的开头记录时间戳,构建差异的直方图。它需要添加 (n+1) 行新代码,其中 n 是调用 f1() 的次数。

我基本上想要这个幼稚解决方案的可扩展版本。

最佳答案

根据您的操作系统和处理器,可以使用更精确的解决方案。如果您使用的是 Linux,请使用 perf_events。它为 PMU 事件提供了良好的接口(interface)。您可以使用它来获取 icache-misses 的准确计数,并对这些事件的堆栈快照进行采样,以确定 icache-misses 发生的位置。

关于c++ - 分析指令缓存未命中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30788618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com