如果我们看一下源代码,为
clock()Mac
OS X上,我们可以看到它使用的实施
getrusage,并读取
ru_utime +ru_stime。这两个字段测量进程(或系统,代表进程)使用的CPU时间。这意味着,如果
usleep(或
fgets)导致OS交换不同的程序以执行,直到发生某种情况,那么经过的任何实时时间(也称为“挂历时间”,如“挂钟”中所述)都不会计入该值可以
clock()在Mac
OS X上返回。您可能可以在Linux中进行挖掘并找到类似的东西。
但是,在Windows上,
clock()返回自该过程开始以来经过的墙时间。
在纯C语言中,我不知道OS
X,Linux和Windows上可用的函数将以亚秒级的精度返回时间(time.h相当有限)。你必须
GetSystemTimeAsFileTime在Windows上,将返回你时间为100ns片,
gettimeofday从BSD,将返回时间微秒精度。
如果您可以接受第二精度,则可以使用
time(NULL)。
如果选择C
++,则可以使用其中的一个时钟
std::chrono来获得所需的精度。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)