我有一个脚本(这是一个Hadoop脚本猪到b precice)从中我要测量的执行时间。我可能会计划多次运行测试,并将平均/中位时间作为执行时间。使用Python Popen对脚本进行基准测试?
由于手工启动脚本几次可能会很麻烦,我想编写一个脚本来运行这些测试。
它是使用Python的POPEN启动一个新的进程,执行脚本并衡量进程正在运行的时间是个好主意,说:
# start timer
p = subprocess.Popen(...)
stdout, stderr = p.communicate()
# end timer
是否创建新的进程歪斜在时间的结果测量,还是这个apporoach罚款?还有其他建议吗?
最佳, 威尔
相反,while循环,只需使用'p.communicate()'等待进程结束。 (或'p.wait()',如果你没有重定向输出。) – 2011-04-28 14:25:52
谢谢,以及如果我的脚本产生大量输出会怎么样? p.communicate缓冲整个输出,直到它打印它?有没有办法打印部分输出/定期冲洗缓冲区? – Will 2011-04-28 14:33:49
或者,在Linux上,您可以使用time命令来衡量一个进程已经运行了多少。例如,“time myprog”会运行myprog,并最终告诉你需要多少时间。 – sashoalm 2011-04-28 14:35:25