得到python子进程花费的时间

Fro*_*ost 17 python python-2.7

我想知道子进程需要多长时间.我试着用

start = time.time()
subprocess.call('....')
elapsed = (time.time() - start)
Run Code Online (Sandbox Code Playgroud)

然而,它不是很准确(不确定与多进程或其他相关)是否有更好的方法我可以得到子进程真正花费多少时间?

谢谢!

Rol*_*ith 11

这取决于你想要的时间; 经过时间,用户模式,系统模式?

有了resource.getrusage可以查询当前进程的孩子的用户模式和系统模式时间.这仅适用于UNIX平台(例如Linux,BSD和OS X):

import resource
info = resource.getrusage(resource.RUSAGE_CHILDREN)
Run Code Online (Sandbox Code Playgroud)

在Windows上,您可能必须使用ctypes从WIN32 API获取等效信息.


Rus*_*hal 6

这更准确:

from timeit import timeit
print timeit(stmt = "subprocess.call('...')", setup = "import subprocess", number = 100)
Run Code Online (Sandbox Code Playgroud)