2014-09-23 49 views
1

與此類似問題上profiling multiprocessing code Python程序...剖析調用並行外部程序

我需要分析我的代碼庫,而且我計劃用CPROFILE。這個程序本質上是一個並行運行評估函數的遺傳算法。踢球者是這個評估函數通過命令行從外部調用另一個Python程序。

是否可以使用cProfile來描述整體運行?基本上,我打算開始我的工作人員功能(累積時間,pcalls,內存開銷等)內的分析,但我擔心外部程序將不可見的分析器。

回答

1

你是正確的,外部程序將不可見的分析器。 cProfile模塊將軟件掛鉤添加到您的代碼中,從而觸發各種計數器,如函數調用或返回等事件。您將能夠看到您致電subprocess.call()或您用來執行外部命令的任何內容,但是您不會看到有關外部命令執行的任何詳細信息。您將能夠看到呼叫被阻止了多長時間,因此您會了解外部命令執行需要多長時間,但您無法獲取它們的分析詳情。

這就是說,您無法將cProfile模塊添加到名爲的腳本中,並且您將獲得主腳本和被調用外部腳本的配置文件結果。他們只是不會在同一個文件中。

+0

這實際上是我最終做的。我只是將我的外部電話通知cProfile,只查看該模塊。 – espais 2014-10-08 02:05:48