了解C ++中的clock()和CLOCKS_PER_SEC

时间:2014-03-05 01:25:43

标签: c++ c time timer clock

我对准确计算c ++应用程序的时间感兴趣。对于“时间”似乎有多种定义,但是为了这个问题...我感兴趣的是我在现实世界中指望我的时间......如果这有任何意义!无论如何,在我的应用程序中,我的开始时间是这样完成的:

clock_t start = clock();
.
.
. // some statements
.
.
clock_t end = clock();
.
.
double duration = end - start;
.
.
cout << CLOCKS_PER_SEC << endl;

开始等于184000 结束等于188000 CLOCKS_PER_SEC 等于1000000

这是否意味着持续时间(以秒为单位)等于4000/1000000?如果是这样,这意味着持续时间是.004秒?有更准确的方法来衡量这个吗?

谢谢

1 个答案:

答案 0 :(得分:1)

尝试这个以纳秒精度查找时间

struct timespec start, end;
clock_gettime(CLOCK_REALTIME,&start);
/* Do something */
clock_gettime(CLOCK_REALTIME,&end);

它返回一个值((((unsigned64)start.tv_sec) * ((unsigned64)(1000000000L))) + ((unsigned64)(start.tv_nsec))))

如果您觉得有用,请参考this链接..