Linux中有没有一个函数可以让我查看一个进程在完成后使用了多少CPU?我需要类似于bash "time“命令的东西。我对进程进行了fork(),然后使用wait()等待一个孩子完成。准确测量“实时”时间( fork()和exit()之间经过的实际时间)的方法也是受欢迎的,即使在子进程变成僵尸之后很长一段时间才调用wait(),但我不确定这是否可行。
发布于 2011-08-13 20:33:08
当然,wait3和wait4会帮你搞定的。或者(更便于移植),您可以使用getrusage(2)。
waitpid()和wait4()系统调用类似于
(2),但在
rusage指向的结构中另外返回有关子级的资源使用信息。
示例:wait3
struct rusage usage;
wait3(&status, 0, &usage);示例:getrusage
当然,wait3和wait4只是为了方便起见。因此您可以使用getrusage
getrusage(RUSAGE_CHILDREN, &usage);缺点是这会告诉您所有被终止的子进程所使用的资源。
那么,一旦你得到了它,你对rusage做了什么呢?struct rusage有以下形式:
struct rusage {
struct timeval ru_utime; /* user CPU time used */
struct timeval ru_stime; /* system CPU time used */
/* More. */
};发布于 2013-07-19 03:05:57
https://stackoverflow.com/questions/7050360
复制相似问题