栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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
来获得所需的精度。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401024.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号