如何对并行化的Python脚本进行性能分析?

12 投票
1 回答
4598 浏览
提问于 2025-04-15 14:14

假设我有一个叫做 my_parallel_script.py 的 Python 脚本,这个脚本使用 multiprocessing 来同时处理几个任务。我用下面的命令来运行它:

python -m cProfile my_parallel_script.py

这样做只会生成 父进程 的性能分析输出。子进程的调用根本没有被记录下来。有没有办法也对子进程进行性能分析呢?

如果唯一的选择是修改源代码,那最简单的方法是什么呢?

1 个回答

10

cProfile 只在一个进程内工作,所以你不会自动对子进程进行性能分析。

我建议你修改一下子进程的代码,这样你就可以把它当作一个单独的进程来运行。然后在性能分析工具下运行它。其实在进行性能分析的时候,你可能不需要同时运行多个进程,这样只让一个子进程运行会简单很多。

撰写回答