nar*_*ngi 8 c++ linux performancecounter cpu-cache perf
我想测量我的 C++ 代码某些部分的 L1、L2 和 L3 缓存命中/未命中率。我对在我的整个应用程序中使用 Perf 不感兴趣。Perf 可以用作 C++ 中的库吗?
int main() {
...
...
start_profiling()
// The part I'm interested in
...
end_profiling()
...
...
}
Run Code Online (Sandbox Code Playgroud)
我给了英特尔 PCM 一个机会,但我遇到了两个问题。首先,它给了我一些奇怪的数字。其次,它不支持 L1 缓存分析。
如果 Perf 无法实现,那么获取该信息的最简单方法是什么?
听起来您要做的就是读取一些性能计数器,这是PAPI库的理想选择。
支持的计数器的完整列表很长,但听起来您最感兴趣的是PAPI_L1_TCM
、PAPI_L1_TCA
、 以及它们L2
和对应的L3
计数器。请注意,您还可以将访问分解为读/写,并且可以区分指令和数据缓存。
归档时间: |
|
查看次数: |
2296 次 |
最近记录: |