我有一个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时间?
答案 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)。