Файл /proc/<pid>/stat
содержит необходимую информацию - вы заполняете поля utime
и stime
. Это кумулятивные счетчики используемого процессорного времени процесса и режима ядра; прочитайте их в начале интервала измерения, затем прочитайте их снова в конце и вычислите разницу.
Это даст вам время ЦП в jiffies. Чтобы определить общее истекшее время настенных часов в jiffies (чтобы вы могли преобразовать в среднее использование), суммируйте числа в строке cpu0
в /proc/stat
(до и после, точно так же как /proc/<pid>/stat
).
Это расположение первых нескольких полей в /proc/<pid>/stat
, начиная с Documentation/filesystems/proc.txt
в источнике Linux:
Table 1-3: Contents of the stat files (as of 2.6.22-rc3)
..............................................................................
Field Content
pid process id
tcomm filename of the executable
state state (R is running, S is sleeping, D is sleeping in an
uninterruptible wait, Z is zombie, T is traced or stopped)
ppid process id of the parent process
pgrp pgrp of the process
sid session id
tty_nr tty the process uses
tty_pgrp pgrp of the tty
flags task flags
min_flt number of minor faults
cmin_flt number of minor faults with child's
maj_flt number of major faults
cmaj_flt number of major faults with child's
utime user mode jiffies
stime kernel mode jiffies
cutime user mode jiffies with child's
cstime kernel mode jiffies with child's