0

同一算法的两个版本在 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 速度较慢?

4

1 回答 1

0

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

于 2012-10-18T12:46:54.750 回答