首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >getrusage clock_gettime()

getrusage clock_gettime()
EN

Stack Overflow用户
提问于 2011-10-01 19:12:07
回答 1查看 1.3K关注 0票数 5

我试图获得Ubuntu上的进程消耗的CPU时间。据我所知,有两个函数可以完成这项工作: getrusage()和clock_gettime(CLOCK_PROCESS_CPUTIME_ID &tp)。在我的代码中,在clock_gettime(CLOCK_PROCESS_CPUTIME_ID &tp)之后立即调用getrusage()总是会给出不同的结果。

有谁能帮我理解哪种功能能提供更高的分辨率,以及这些功能有哪些优缺点?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-02-12 00:26:55

地球(.)

  • 将CPU时间分别划分为ru_utime和ru_stime中的系统组件和用户组件。
  • 大致微秒分辨率:结构时间有场tv_usec,但这种分辨率通常限制在大约4ms/250 is (来源)
  • SVr4,4.3BSD,POSIX.1-2001:这意味着它可以在Linux和OS上使用

见手册页

clock_gettime(CLOCK_PROCESS_CPUTIME_ID .)

  • 将系统和用户时间组合在一起,无法将其分离为系统/用户时间组件。
  • 纳秒分辨率: struct是struct的克隆,但使用的是tv_nsec而不是tv_usec。精确的分辨率取决于定时器是如何在给定的系统上实现的,并且可以用clock_getres.查询。
  • 要求您链接到图书
  • 时钟可能不可用。在本例中,clock_gettime将返回-1并将errno设置为EINVAL,因此提供getrusage回退是一个好主意。(来源)
  • 可在SUSv2和POSIX.1-2001上使用:这意味着它可以在Linux上使用,但不能在OS上使用。

见手册页

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

https://stackoverflow.com/questions/7622371

复制
相关文章

相似问题

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