time命令返回执行命令所用的时间。
如果我在命令调用的开头放一个"gettimeofday()“(使用system() ),在调用的末尾放一个”gettimeofday()“,然后取一个不同的值,结果就不一样了。(这也不是很小的区别)
有人能解释一下这两种用法之间的确切区别吗?哪种方法是对调用的执行进行计时的最佳方式?
谢谢。
发布于 2013-03-01 21:30:01
Unix time命令测量整个程序的执行时间,包括系统加载二进制文件及其所有库所需的时间,以及程序完成后清理所有文件所需的时间。
另一方面,gettimeofday只能在程序内部工作,即在它完成加载(对于初始测量)之后,并且在它被清除之前(对于最终测量)。
哪一个是最好的?这取决于你想要测量的东西。;)
发布于 2013-03-01 21:30:09
time()返回自纪元以来的时间,单位为秒。
gettimeofday():返回:
struct timeval {
time_t tv_sec; /* seconds */
suseconds_t tv_usec; /* microseconds */
};发布于 2013-03-01 21:29:17
这完全取决于你选择的时机。如果你想以秒为单位计时,那么time()可能是你最好的选择。如果你需要更高的分辨率,那么我会考虑gettimeofday(),它提供了高达微秒级的分辨率(1 /1000000秒)。
如果您需要更高的分辨率,请考虑使用clock()和CLOCKS_PER_SECOND,只需注意clock()很少能准确描述所用的时间,而是所使用的CPU周期数。
https://stackoverflow.com/questions/15158863
复制相似问题