1

类似于关于分析多处理代码的这个问题......

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

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

4

1 回答 1

1

您是正确的,外部程序不会对探查器“可见”。cProfile 模块将软件挂钩添加到您的代码中,这些挂钩会在函数调用或返回等事件上触发各种计数器。您将能够看到您对外部命令的调用subprocess.call()或用于执行外部命令的任何内容,但您不会看到有关外部命令执行的任何详细信息。您将能够看到调用被阻塞了多长时间,因此您将了解执行外部命令需要多长时间,但您不会获得它们的分析详细信息。

话虽如此,您也没有理由不能将 cProfile 模块添加到被调用的脚本中,并且您将获得主脚本和被调用的外部脚本的配置文件结果。他们只是不会在同一个文件中。

于 2014-09-29T16:20:44.870 回答