2014-09-23 47 views
1

与此类似问题上profiling multiprocessing code Python程序...剖析调用并行外部程序

我需要分析我的代码库,而且我计划用CPROFILE。这个程序本质上是一个并行运行评估函数的遗传算法。踢球者是这个评估函数通过命令行从外部调用另一个Python程序。

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

回答

1

你是正确的,外部程序将不可见的分析器。 cProfile模块将软件挂钩添加到您的代码中,从而触发各种计数器,如函数调用或返回等事件。您将能够看到您致电subprocess.call()或您用来执行外部命令的任何内容,但是您不会看到有关外部命令执行的任何详细信息。您将能够看到呼叫被阻止了多长时间,因此您会了解外部命令执行需要多长时间,但您无法获取它们的分析详情。

这就是说,您无法将cProfile模块添加到名为的脚本中,并且您将获得主脚本和被调用外部脚本的配置文件结果。他们只是不会在同一个文件中。

+0

这实际上是我最终做的。我只是将我的外部电话通知cProfile,只查看该模块。 – espais 2014-10-08 02:05:48