每次插入输入时如何记录程序的运行时间?我尝试过这种特殊方法:
clock_t tStart = clock(),tEnd;
在打印输出后:
tEnd = clock();
printf("Time taken: %.6fs\n", (double)(tEnd - tStart) / CLOCKS_PER_SEC);
但是,有时我在计算毫秒数时最终只能得到一堆0。是否有任何方法可以改善这一点?
答案 0 :(得分:3)
有什么方法可以改善这一点吗?
如果您没有更好的计时器(如jspcal的答案所示),那么另一种解决方案是将相同的操作重复多次,然后将经过的时间除以重复次数:
const int REPS = 10000;
clock_t tStart = clock(),tEnd;
for (int i = 0; i < REPS; i++) {
// do your work here
}
tEnd = clock();
double time = (double)(tEnd - tStart)/REPS;
printf("Time taken: %.6fs\n", time / CLOCKS_PER_SEC);
答案 1 :(得分:2)
也许尝试使用更高分辨率的计时器,该计时器可能在您的平台上可用:
find('[name="vehicle_attrs[position_count]"]').find('option', text: /\AFront\z/).select_option
答案 2 :(得分:1)
在unix中,使用time
,它分叉并执行程序,并在孩子退出后执行get_rusage()
。
因此,您不必自己检测程序。
plasser@pisbak:$ time ./a.out omg.dat
real 0m10.276s
user 0m9.986s
sys 0m0.291s
plasser@pisbak:$