分析调用并行外部程序的Python程序

时间:2014-09-23 18:38:51

标签: python-2.7 multiprocessing external-process cprofile

profiling multiprocessing code上的这个问题类似......

我需要分析我的代码库,并且我计划使用cProfile。该程序本质上是一种并行运行评估函数的遗传算法。问题是这个评估函数通过命令行在外部调用另一个Python程序。

是否可以使用cProfile来分析整体运行?基本上,我打算在我的工作函数内部开始分析(累积时间,pcalls,内存开销等),但是我担心外部程序对于分析器是不可见的。

1 个答案:

答案 0 :(得分:1)

你是对的,外部程序不会是'#34;可见"到分析器。 cProfile模块为您的代码添加了软件挂钩,可以触发函数调用或返回等事件的各种计数器。您将能够看到对subprocess.call()的呼叫或您执行外部命令所使用的任何内容,但您不会看到有关外部命令执行的任何详细信息。您将能够看到呼叫被阻止了多长时间,因此您可以了解外部命令执行所需的时间,但您无法获得它们的分析详细信息。

话虽如此,您也无法将cProfile模块添加到名为的脚本中,并且您将获得两个人的个人资料搜索结果主脚本和被调用的外部脚本。他们只是不在同一个档案中。