您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

C:Windows和其他操作系统中clock()的不同实现?

C:Windows和其他操作系统中clock()的不同实现?

如果我们看一下源代码,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来获得所需的精度。

其他 2022/1/1 18:16:49 有395人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶