处理完成后的CPU时间

Pio*_*rek 1 linux posix timing cpu-usage

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

cni*_*tar 5

当然,wait3wait4你覆盖.或者(也可以更便携)你可以使用getrusage(2).

wait3()和wait4()系统调用类似于waitpid(2),但另外返回有关子指向的结构中子节点的资源使用信息rusage.

例: wait3

struct rusage usage;
wait3(&status, 0, &usage);
Run Code Online (Sandbox Code Playgroud)

例: getrusage

当然,wait3wait4仅仅是方便.所以你可以使用getrusage:

getrusage(RUSAGE_CHILDREN, &usage);
Run Code Online (Sandbox Code Playgroud)

缺点是这会告诉您所有已终止子项使用的资源.

所以,一旦你得到它,你做rusage什么?struct rusage有以下形式:

struct rusage {
    struct timeval ru_utime; /* user CPU time used */
    struct timeval ru_stime; /* system CPU time used */
    /* More. */
};
Run Code Online (Sandbox Code Playgroud)