时间vs gettimeofday c ++

sus*_*ray 4 c++ time gettimeofday

time命令返回执行命令所用的时间.

如果我在命令调用开始时使用"gettimeofday()"(使用system()),并在调用结束时添加一个,并且有所不同,那么它就不会出现相同的情况.(它的差异也不是很小)

任何人都可以解释这两种用法之间的确切区别是什么,这是为执行呼叫计时的最佳方式?

谢谢.

Ric*_*III 6

这完全取决于你的时间安排。如果您想在几秒钟内计算某件事的时间,那么这time()可能是您最好的选择。如果您需要比这更高的分辨率,那么我会考虑gettimeofday(),它会放弃微秒分辨率(一秒的十分之一)。

如果您需要比这更高的分辨率,请考虑使用clock()CLOCKS_PER_SECOND,请注意,这clock()很少是对所用时间的准确描述,而是对所使用的 CPU 周期数的准确描述。


sya*_*yam 6

Unix time命令测量整个程序执行时间,包括系统加载二进制文件及其所有库所需的时间,以及程序完成后清理所有内容所需的时间.

另一方面,gettimeofday只能在程序内部工作,即在完成加载(用于初始测量)之后,以及在清理之前(用于最终测量).

哪一个最好?取决于你想要衡量的东西......;)


Zaf*_*ffy 5

time()返回自纪元以来的时间(以为单位) 。

gettimeofday():返回:

struct timeval {
       time_t      tv_sec;     /* seconds */
       suseconds_t tv_usec;    /* microseconds */
};
Run Code Online (Sandbox Code Playgroud)