在python中进行计时时,如何考虑subprocess.Popen()开销?

时间:2011-09-26 20:07:21

标签: python time cross-platform subprocess

更智能的成员的最编码社区超我!我对你们都有一个蟒蛇问题......:)

我正在尝试优化一个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()中抽取开销的无害方式是什么?

或者,也许还有一些我还没有考虑过的事情?

需要注意的是,解决方案必须合理地跨平台。

1 个答案:

答案 0 :(得分:1)

欢迎来到batteries included