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

Valgrind与Linux完全相关

发布时间:2020-12-14 01:00:45 所属栏目:Linux 来源:网络整理
导读:假设我选择了perf事件指令,LLC-load-miss,LLC-store-miss.进一步假设我测试程序prog改变其输入. valgrind是否应该为同一个输入和同一个计数器给出“相同”的功能结果?也就是说,如果perf中的一个值上升,那么valgrind中的值应该总是相同吗?在分析我的代码时,
假设我选择了perf事件指令,LLC-load-miss,LLC-store-miss.进一步假设我测试程序prog改变其输入. valgrind是否应该为同一个输入和同一个计数器给出“相同”的功能结果?也就是说,如果perf中的一个值上升,那么valgrind中的值应该总是相同吗?在分析我的代码时,我应该注意的valgrind是否有任何影响?

编辑:BTW,在人们烧烤我没有尝试自己之前,我不得不说我(有点)有,问题是我有一个Sandybridge处理器,而且有一个“bug”阻止我测量LLC- *事件.有一个补丁,但我不想重新编译我的内核……

解决方法

好吧,Cachegrind是一个缓存模拟器.即使它试图模仿您的某些硬件特性(缓存大小,关联性等),它也不会模拟系统的每个功能和行为.因此,在某些情况下您可能会看到一些差异.

例如,Valgrind的文档指出“Cachegrind模拟的分支预测器是典型的2004年左右的主流桌面/服务器处理器”. Sandy Bridge处理器最早出现在2011年,您可以猜测分支预测器自2004年以来已经有了很大的改进.

话虽如此,Valgrind仍然是您工具箱中的绝佳工具.

perf的LLC事件在Sandy Bridge处理器上有什么问题?我每天都在Sandy Bridge笔记本电脑上使用这些事件,它按预期工作(archlinux 64bits,linux 3.6).

(编辑:李大同)

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

    推荐文章
      热点阅读