加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

缓存 – 用于缓存引用的Linux perf命令

发布时间:2020-12-14 01:19:33 所属栏目:Linux 来源:网络整理
导读:我想测量我的代码的缓存未命中率.我们可以使用perf list来显示支持的事件.我的桌面有一个Intel(R)Core(TM)i5-2400 CPU @ 3.10GHz处理器,perf列表包含缓存参考和缓存未命中,如下所示: cpu-cycles OR cycles [Hardware event] stalled-cycles-frontend OR idl
我想测量我的代码的缓存未命中率.我们可以使用perf list来显示支持的事件.我的桌面有一个Intel(R)Core(TM)i5-2400 CPU @ 3.10GHz处理器,perf列表包含缓存参考和缓存未命中,如下所示:

cpu-cycles OR cycles                               [Hardware event]
  stalled-cycles-frontend OR idle-cycles-frontend    [Hardware event]
  stalled-cycles-backend OR idle-cycles-backend      [Hardware event]
  instructions                                       [Hardware event]
  cache-references                                   [Hardware event]
  cache-misses                                       [Hardware event]

根据英特尔架构软件开发人员手册,我认为缓存未命中映射到硬件事件LLC-missses(我通过比较perf stat -e r412e和perf stat -e cache-miss确认了这一点,它们给出了几乎相同的结果).但是如何计算缓存引用?我没有找到使用现有硬件事件获取总缓存引用的事件或方法.所以我想知道这个缓存引用在我的计算机上是否准确?

解决方法

在Intel上,我认为perf不提供测量总缓存引用的事件,因为此类事件在硬件级别不存在.您应该能够使用perf list报告的硬件缓存事件自行计算此信息:

L1-dcache-loads                                    [Hardware cache event]
L1-dcache-load-misses                              [Hardware cache event]
L1-dcache-stores                                   [Hardware cache event]
L1-dcache-store-misses                             [Hardware cache event]
L1-dcache-prefetches                               [Hardware cache event]
L1-dcache-prefetch-misses                          [Hardware cache event]
L1-icache-loads                                    [Hardware cache event]
L1-icache-load-misses                              [Hardware cache event]
L1-icache-prefetches                               [Hardware cache event]
L1-icache-prefetch-misses                          [Hardware cache event]
LLC-loads                                          [Hardware cache event]
LLC-load-misses                                    [Hardware cache event]
LLC-stores                                         [Hardware cache event]
LLC-store-misses                                   [Hardware cache event]
LLC-prefetches                                     [Hardware cache event]
LLC-prefetch-misses                                [Hardware cache event]

未标记为-misses的事件表示关联缓存中的引用数.

注意:此前的question和此man page关于perf_event_open(由perf内部使用)可能有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读