我不想在linux上测量进程之外的进程的执行持续时间。我发现/proc/[pid]/state有一个名为starttime的字段,该字段在手册页上描述为“进程在系统启动后启动的jiffies时间”。
另外,我发现/proc/uptime提供了自系统启动以来经过的时间et(以秒为单位)。理论上我可以通过
运行时间=et-starttime/(每秒jiffies)。
至于jiffies,我认为它指的是内核的配置赫兹(ubuntu 12.04上的250),而不是用户赫兹(ubuntu12.04上的100,由“getconf clk_tck”获得),如http://www.makelinux.net/books/lkd2/ch10lev1sec3所述。不过,我测试了一下,发现实际上starttime在ubuntu 12.04上使用的是用户uhz。我被这一点搞糊涂了。有人能给我解释一下吗?谢谢!

最佳答案

您的man页面在检索时可能已过期。这里有一个more current page表示如下:
(22)开始时间%llu

      The time the process started after system boot.  In
      kernels before Linux 2.6, this value was expressed
      in jiffies.  Since Linux 2.6, the value is expressed
      in clock ticks (divide by sysconf(_SC_CLK_TCK)).

在旧的内核(Linux2.6之前)中,时间实际上是用内核jiffies表示的。但是,此行为已更改为现在提供时钟节拍中的时间——jiffies按预期通过用户的赫兹常数进行缩放。

关于linux - Linux:地球上的/proc/[pid]/stat中的starttime字段使用HZ(jiffies)或USER_HZ(_SC_CLK_TCK),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20584891/

10-13 00:48