是否可以在C代码中使用Linux Perf Profiler?
作者:互联网
我想测量我的C代码某些部分的L1,L2和L3缓存命中率/未命中率.我对将Perf用于整个应用程序不感兴趣. Perf可以用作C中的库吗?
int main() {
...
...
start_profiling()
// The part I'm interested in
...
end_profiling()
...
...
}
我试了一下Intel PCM,但是遇到了两个问题.首先,它是gave me some strange numbers.其次,它不支持L1缓存配置文件.
如果Perf无法做到,那么获取该信息的最简单方法是什么?
解决方法:
听起来您想要做的就是读取一些性能计数器,这是PAPI库最理想的选择.
full list of supported counters相当长,但听起来您对PAPI_L1_TCM,PAPI_L1_TCA以及它们的L2和L3副本最感兴趣.请注意,您还可以将访问分为读/写,并且可以区分指令和数据缓存.
标签:cpu-cache,performancecounter,perf,linux,c-4 来源: https://codeday.me/bug/20191028/1951530.html