首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >进程完成后的CPU时间

进程完成后的CPU时间
EN

Stack Overflow用户
提问于 2011-08-13 20:21:09
回答 2查看 2.1K关注 0票数 1

Linux中有没有一个函数可以让我查看一个进程在完成后使用了多少CPU?我需要类似于bash "time“命令的东西。我对进程进行了fork(),然后使用wait()等待一个孩子完成。准确测量“实时”时间( fork()和exit()之间经过的实际时间)的方法也是受欢迎的,即使在子进程变成僵尸之后很长一段时间才调用wait(),但我不确定这是否可行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-13 20:33:08

当然,wait3wait4会帮你搞定的。或者(更便于移植),您可以使用getrusage(2)

waitpid()和wait4()系统调用类似于

(2),但在rusage指向的结构中另外返回有关子级的资源使用信息。

示例:wait3

代码语言:javascript
复制
struct rusage usage;
wait3(&status, 0, &usage);

示例:getrusage

当然,wait3wait4只是为了方便起见。因此您可以使用getrusage

代码语言:javascript
复制
getrusage(RUSAGE_CHILDREN, &usage);

缺点是这会告诉您所有被终止的子进程所使用的资源。

那么,一旦你得到了它,你对rusage做了什么呢?struct rusage有以下形式:

代码语言:javascript
复制
struct rusage {
    struct timeval ru_utime; /* user CPU time used */
    struct timeval ru_stime; /* system CPU time used */
    /* More. */
};
票数 5
EN

Stack Overflow用户

发布于 2013-07-19 03:05:57

  1. 的bash特性" times“报告shell及其子程序使用的总用户/系统时间。不幸的是,这个特性没有报告总内存,i/o等。例如:它没有使用getrusage (它应该使用)。
  2. /usr/bin/time程序会给你提供执行时间,内存占用。所以你可以做/usr/bin/time bash myprog.sh ...并获取所有子项的累计时间。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7050360

复制
相关文章

相似问题

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