在进程仍在运行时查找进程的cpu时间及其子进程

时间:2013-12-10 15:38:35

标签: c linux bash cpu cpu-usage

我有一个bash脚本,它运行一系列运行其他程序的程序。我如何获得bash脚本的cpu时间以及它后代进程的所有

我查看了/ proc / {process-id} / stat和问题How to calculate the CPU usage of a process by PID in Linux from C?

但我不确定如何计算bash脚本的所有子进程的总cpu时间。

编辑 如果我在一段时间间隔内计算utime的差异和stime的差异,我知道在一个过程中它在该间隔中花费的cpu时间(utime + stime)。

如果进程仍在运行,我如何为所有子进程(也创建自己的进程)添加cpu时间?

1 个答案:

答案 0 :(得分:2)

您可以使用以下方法计算:

  

utime%lu

     

在用户模式下安排此流程的时间,   以时钟周期测量(除以sysconf(_SC_CLK_TCK)。这包括   访客时间,guest_time(运行虚拟CPU所花费的时间,见下文),   以便不知道访客时间字段的应用程序不会   从计算中失去那段时间。

     

stime%lu

     

在内核模式下安排此进程的时间,   以时钟周期测量(除以sysconf(_SC_CLK_TCK)。

     

cutime%ld

     

这个过程等待孩子的时间   在用户模式下安排,以时钟周期测量(除以   的sysconf(_SC_CLK_TCK)。 (另见时间(2)。)这包括客人时间,   cguest_time(运行虚拟CPU所花费的时间,见下文)。

     

cstime%ld

     

这个过程等待孩子的时间   以内核模式调度,以时钟周期测量(除以   的sysconf(_SC_CLK_TCK)。