cachegrind计数不反映实际性能

时间:2012-10-13 13:51:09

标签: optimization valgrind cachegrind

同一算法的两个版本在valgrind / cachegrind下产生不同的总指令获取计数和周期估计。差异大约是25%。但是,进程计时非常相似(对于cachegrind-slow版本实际上更短):

  • 版本1:

    Ir:     146,328,018,245
    CEst:   152,553,736,055
    timing: 17.93 s
    
  • 版本2:

    Ir:     185,221,836,610
    CEst:   197,531,381,950
    timing: 17.53 s
    

预计会出现这种情况吗?我怎样才能更多地了解版本1为何较慢?

1 个答案:

答案 0 :(得分:0)

我发现不一致是由于用于cachegrind运行和定时运行的不同编译器选项。特别是,我已经禁用了cachegrind运行的函数内联(这样我就能获得有意义的每个函数计数)。