我正在使用 gettimeofday 来测量我用 C++ 本机代码为 android 应用程序编写的函数的执行时间。我创建了一个计时器类来帮助我完成此任务:
timer::timer(){Reset();}
timer::Reset(){
timeval t;
gettimeofday(&t, 0);
start_s = t.tv_sec;
start_ms = t.tv_usec * 0.001f;
}
timer::GetTime(){
timeval t;
gettimeofday(&t, 0);
return (t.tv_sec - start_s)*1000 + t.tv_usec * 0.001f - start_ms;
}
然后,在我的主代码中,我创建了两个计时器对象并执行如下测量:
main(){
timer t1, t2;
stringstream str1;
t1.Reset();
for (some count){
t2.Reset();
some_function();
str1 << t2.GetTime() << " ";
}
str1 << t1.GetTime();
output str1;
}
但问题是,当我查看输出结果时,t1 几乎与所有 t2 值相同。如果 for 循环运行五次,则输出示例可能是“0.5 0.5 0.4 0.4 0.5 0.55”。
我无法弄清楚为什么会发生这种情况。
任何帮助表示赞赏。
谢谢。