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

在python中计时时,如何考虑subprocess.Popen()开销?,python,time,cross-platform,subprocess,Python,Time,Cross Platform,Subprocess,比我更聪明的编码社区成员!我有一个python问题要问大家……:) 我试图优化一个python脚本,该脚本(除其他外)返回子进程执行和终止所需的挂钟时间。我想我对这样的事情已经很熟悉了 startTime = time.time() process = subprocess.Popen(['process', 'to', 'test']) process.wait() endTime = time.time() wallTime = endTime - startTime 但是,我担心subp

比我更聪明的编码社区成员!我有一个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()
中采样开销的无害方法是什么

或者,也许有些事情我还没有考虑


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

欢迎来到。

啊,是的,我在搜索中确实遇到了这个问题。如果我错了,请纠正我,但看起来这是为了在cpu利用率方面分析python程序。它看起来对我不起作用,因为我希望在墙上的时钟时间里有任何二进制文件。是吗?佩登:我认为没有任何可靠的通用二进制分析器。我可以问什么语言?测试的二进制文件可以用C、C++、和(快门)FORTRAN等多种语言编写。我并不担心精确到指令级(毕竟我在寻找挂钟时间),但使用脚本语言创建子流程会有一些开销,尤其是在较旧的平台上,我想我会尝试适应这种情况。@perden:啊,如果我理解正确的话,你没有分析代码,只是对可执行文件的运行时间感兴趣。也许在万不得已的情况下,可以制定一个由Unix、Windows和Popen组成的解决方案?