小编Ste*_*wat的帖子

Linux perf报告缓存未命中意外指令

我正在尝试将一些性能工程技术应用于Dijkstra算法的实现.为了找到(天真的和未经优化的)程序中的瓶颈,我正在使用该perf命令来记录缓存未命中的数量.相关的代码片段如下,它找到距离最小的未访问节点:

for (int i = 0; i < count; i++) {
    if (!visited[i]) {
        if (tmp == -1 || dist[i] < dist[tmp]) {
            tmp = i;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

对于LLC-load-misses度量标准,perf report显示程序集的以下注释:

       ?             for (int i = 0; i < count; i++) {                                                                                                                           ?
  1.19 ? ff:   add    $0x1,%eax                                                                                                                                                  ?
  0.03 ?102:   cmp    0x20(%rsp),%eax                                                                                                                                            ?
       ?     ? jge    135                                                                                                                                                        ?
       ?                 if (!visited[i]) {                                                                                                                                      ?
  0.07 ?       movslq %eax,%rdx                                                                                                                                                  ?
       ?       mov    0x18(%rsp),%rdi                                                                                                                                            ?
  0.70 …
Run Code Online (Sandbox Code Playgroud)

linux performance caching perf

5
推荐指数
1
解决办法
1033
查看次数

标签 统计

caching ×1

linux ×1

perf ×1

performance ×1