Python subprocess.Popen实例的运行时

Python subprocess.Popen实例的运行时,python,subprocess,Python,Subprocess,有没有一种简单的方法可以找出subprocess.Popen实例的当前(实际或cpu)运行时间?不是以独立于平台的方式。在Linux上,您可以阅读/proc//stat,特别是utime、stime和starttime列(如中所述)。不是以独立于平台的方式阅读。在Linux上,您可以阅读/proc//stat,特别是列utime、stime和starttime(如中所述)。否,但您可以简单地对Popen类进行子类化和扩展以存储其创建时间。否,但您可以简单地对Popen类进行子类化和扩展以存储其创

有没有一种简单的方法可以找出subprocess.Popen实例的当前(实际或cpu)运行时间?

不是以独立于平台的方式。在Linux上,您可以阅读
/proc//stat
,特别是utime、stime和starttime列(如中所述)。

不是以独立于平台的方式阅读。在Linux上,您可以阅读
/proc//stat
,特别是列utime、stime和starttime(如中所述)。

否,但您可以简单地对Popen类进行子类化和扩展以存储其创建时间。

否,但您可以简单地对Popen类进行子类化和扩展以存储其创建时间。

在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)

在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)