有没有一种简单的方法可以找出subprocess.Popen实例的当前(实际或cpu)运行时间?
答案 0 :(得分:1)
不,但你可以简单地继承和扩展Popen类来存储它的创建时间。
答案 1 :(得分:0)
不是与平台无关的方式。在Linux上,您可以阅读/proc/<pid>/stat
,特别是列utime,stime和starttime(如proc(5)中所述)。
答案 2 :(得分:0)
在Windows机器上,您可以使用win32 API和proc.pid,如下所示:
import subprocess
def print_times(proc):
import win32process, win32api, win32con
hproc = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION, False, proc.pid)
times = win32process.GetProcessTimes(hproc)
win32api.CloseHandle(hproc)
# GetProcessTimes returns values in 100-ns intervals
print 'kernel', times['KernelTime'] * 1e-7
print 'user', times['UserTime'] * 1e-7
proc = subprocess.Popen('cmd /c sleep 1')
proc.wait()
print_times(proc)