首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clock()的实现

clock()的实现
EN

Stack Overflow用户
提问于 2012-10-14 23:07:55
回答 1查看 786关注 0票数 1

我在研究各种计算进程CPU时间的机制上的堆栈溢出线程。

clock()是如何在内部实现的?它是否使用rdtsc() (如果是这样,那么它对内核之间的迁移很敏感)。

另外,getrusage()实现了吗?它也依赖于TSC吗?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2013-09-04 13:27:14

内核以节拍大小跟踪进程的CPU利用率。

clock()getrusage()都是基于这些的。

节拍由内核使用采样方法由进程累积,其中内核接收时钟的硬件中断并执行时钟处理程序,该时钟处理程序将节拍添加到当前运行的进程。至少,我上次看起来是这样的。

因此,rtdsc根本不起作用--这是一件好事,因为rdtsc不能跨CPU进行精确测量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12883441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档