同一算法的两个版本在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为何较慢?
答案 0 :(得分:0)
我发现不一致是由于用于cachegrind运行和定时运行的不同编译器选项。特别是,我已经禁用了cachegrind运行的函数内联(这样我就能获得有意义的每个函数计数)。