假设我有一个名为my_parallel_script.py
的Python脚本,其中使用multiprocessing
来并行化多个任务,我使用以下命令运行它:
python -m cProfile my_parallel_script.py
这仅为父进程生成分析输出。在子进程中进行的调用根本不会被记录。是否也可以对子进程进行分析?
如果唯一的选择是修改源代码,那么最简单的方法是什么?
假设我有一个名为my_parallel_script.py
的Python脚本,其中使用multiprocessing
来并行化多个任务,我使用以下命令运行它:
python -m cProfile my_parallel_script.py
这仅为父进程生成分析输出。在子进程中进行的调用根本不会被记录。是否也可以对子进程进行分析?
如果唯一的选择是修改源代码,那么最简单的方法是什么?
cProfile仅在单个进程内工作,因此您不会自动获得子进程的分析。
我建议您调整子进程代码,以便可以将其单独调用为单个进程。然后在分析器下运行它。在分析过程中,您可能不需要在系统中运行多个进程,只有一个子进程运行会简化任务。