时间花在CPU上比实际更快

时间:2015-12-25 02:56:10

标签: c++ linux gcc cpu ctime

我想知道为什么我的整个应用程序运行时间小于8 seconds,而从clock_gettime获得的时间是19.3468 seconds,这是实际情况的两倍多。问题出在哪里?

clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time_start);

... // many calculations

clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time_stop);
double time_diff=(time_stop.tv_sec-time_start.tv_sec+
    (1e-9)*(time_stop.tv_nsec-time_start.tv_nsec);

更新

我没有明确使用任何OpenMP。

1 个答案:

答案 0 :(得分:3)

如果要测量总耗用时间(包括等待IO的阻塞时间),则应使用

CLOCK_MONOTONIC ,但还会包括在程序尝试运行时调度的其他进程导致的速度减慢