如何在Python中考虑subprocess.Popen()的开销?
比我更聪明的编程社区成员们!我有一个关于Python的问题想请教大家... :)
我正在尝试优化一个Python脚本,这个脚本的功能之一是返回一个子进程执行和结束所花费的实际时间。我觉得我快找到解决办法了,像这样。
startTime = time.time()
process = subprocess.Popen(['process', 'to', 'test'])
process.wait()
endTime = time.time()
wallTime = endTime - startTime
不过,我担心在使用subprocess.Popen()
时会产生额外的开销,这可能会影响我在一些老旧或特殊平台上的结果。我最初的想法是通过运行一个简单的无害命令来测量subprocess.Popen()
带来的开销。比如在Linux上可以这样做。
startTime = time.time()
process = subprocess.Popen(['touch', '/tmp/foo'])
process.wait()
endTime = time.time()
overheadWallTime = endTime - startTime
或者在Windows上可以这样做。
startTime = time.time()
process = subprocess.Popen(['type', 'NUL', '>', 'tmp'])
process.wait()
endTime = time.time()
overheadWallTime = endTime - startTime
那么,我应该如何在Python中计算subprocess.Popen()
的开销呢?
或者,有什么简单的方法可以用来采样subprocess.Popen()
的开销吗?
或者,也许还有我没有考虑到的其他因素?
需要注意的是,解决方案必须在不同平台上都能合理使用。