时间花在CPU上比现实中更快

我想知道为什么我的整个应用程序运行时间less于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。

CLOCK_MONOTONIC应该用来衡量总的运行时间,包括等待IO所花费的时间,但是也包括在你的程序试图运行的时候计划的其他进程的减速。