如何查找进程在用户模式或内核模式下花费的时间

如何查找进程在用户模式或内核模式下花费的时间

我通读了 cat /proc/pid/stat 的文档,它显示了许多数字。我正在计算的过程正在无限循环中运行。所以价值观会不断变化。我看到有一个叫做 utime 和 stime 的东西,
我不确定它们是否给出了正在运行的进程的确切用户时间和内核时间?
还有一种方法可以从输出中提取这两个数字,而不是手动确定哪个数字对应于 utime 和 stime ?

答案1

是的,这些字段给出了正在运行的进程的确切用户时间和内核时间;man 5 proc将它们描述为

该进程在用户模式下调度的时间量,以时钟周期为单位(除以 sysconf(_SC_CLK_TCK))。这包括来宾时间 guest_time(运行虚拟 CPU 所花费的时间,请参见下文),以便不知道来宾时间字段的应用程序不会在计算中丢失该时间。

该进程在内核模式下调度的时间量,以时钟周期为单位(除以 sysconf(_SC_CLK_TCK))。

分别。 (访客时间为字段 43。)

您可以使用任何基于现场的工具提取它们,例如

awk '{print $14, $15}' /proc/$$/stat

相关内容