如何对并行化的Python脚本进行性能分析?
假设我有一个叫做 my_parallel_script.py
的 Python 脚本,这个脚本使用 multiprocessing
来同时处理几个任务。我用下面的命令来运行它:
python -m cProfile my_parallel_script.py
这样做只会生成 父进程 的性能分析输出。子进程的调用根本没有被记录下来。有没有办法也对子进程进行性能分析呢?
如果唯一的选择是修改源代码,那最简单的方法是什么呢?
1 个回答
10
cProfile 只在一个进程内工作,所以你不会自动对子进程进行性能分析。
我建议你修改一下子进程的代码,这样你就可以把它当作一个单独的进程来运行。然后在性能分析工具下运行它。其实在进行性能分析的时候,你可能不需要同时运行多个进程,这样只让一个子进程运行会简单很多。