我不打算在Linux上测量这个进程之外进程的执行时间。我发现/proc/pid/state有一个名为starttime的字段,该字段在手册页上描述为“jiffies进程启动后启动的时间”。
此外,我发现/proc/uptime提供了自系统启动以来的运行时间ET (秒)。理论上,我可以通过运行time = ET /(每秒jiffies)从这两个文件获取运行时间。
至于jiffies,我认为它指的是内核的CONFIG_HZ (在ubuntu12.04上为250个),而不是USER_HZ (由"getconf CLK_TCK“获取的ubuntu12.04上的100个),如http://www.makelinux.net/books/lkd2/ch10lev1sec3中所描述的那样。但是,我对它进行了测试,发现实际上启动时在ubuntu12.04上使用了USER_HZ。我被这一点弄糊涂了。有人能给我解释一下吗?非常感谢!
发布于 2015-06-03 14:07:10
您的man页面可能在检索它时已经过时了。下面是一个更多当前页面,它声明如下:
(22)启动时间
%llu系统启动后进程开始的时间。在Linux2.6之前的内核中,这个值用jiffies表示。由于Linux2.6,该值以时钟刻度表示(除以sysconf(_SC_CLK_TCK))。
在较老的内核中(在Linux2.6之前),时间实际上用内核jiffies表示。但是,这种行为现在改变为提供时钟计时时间--按照您的预期通过USER_HZ常量进行缩放。
https://stackoverflow.com/questions/20584891
复制相似问题