我有一個腳本(這是一個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