假设我选择
perf
事件instructions
, LLC-load-misses
, LLC-store-misses
。进一步假设我通过改变程序输入来测试一个名为prog
的程序。对于相同的输入和相同的计数器,valgrind
是否应该为我提供“相同”的功能结果?也就是说,如果perf
中的一个值增加了,valgrind
中的一个值应该始终执行相同的操作吗?在进行代码性能分析时,valgrind
作为模拟器是否会产生任何影响,我需要注意什么?
编辑:顺便说一下,在人们批评我没有自己进行实验之前,我不得不说我已经(有点)这样做了,问题在于我有一台Sandybridge处理器,而perf
有一个“错误”,导致我无法测量LLC-*事件。有一个补丁,但我不想重新编译我的内核...