擅长:python、mysql、java
<p>我不知道您是否可以这样做,但是在Linux上,您可以解析<code>/proc/<PID>/stat</code>来找到任何进程从<code>os.times</code>获得的前四个值。例如:</p>
<pre><code>import sys
import os
if not len(sys.argv) == 2:
print >> sys.stderr, "Usage: %s <PID>" % (sys.argv[0])
sys.exit(1)
pid = int(sys.argv[1])
hz = os.sysconf(os.sysconf_names['SC_CLK_TCK'])
with open("/proc/%d/stat" % (pid,)) as fp:
fields = fp.read().split(' ')[13:17]
utime, stime, cutime, cstime = [ (float(f) / hz) for f in fields ]
print "utime in clock ticks:", utime
print "stime in clock ticks:", stime
print "cutime in clock ticks:", cutime
print "cstime in clock ticks:", cstime
</code></pre>
<p>假设您有感兴趣的子进程的进程id。在</p>
<p>我发现了如何从这个问题中获得<code>sysconf(_SC_CLK_TCK)</code>的值:<a href="https://stackoverflow.com/questions/4189123/python-how-to-get-number-of-mili-seconds-per-jiffy/4189612#4189612">Python: How to get number of mili seconds per jiffy</a>,关于{<cd1>}中字段的信息来自<code>proc(5)</code>手册页。在</p>