如何分析使用 python 的多处理的脚本

How to profile a script which uses python's multiprocessing

我有一个使用函数 parallel_map 的脚本文件。 ( source code of qutip.parallel.parallel_map) from a package QuTiP . As one would see on clicking the source code 对于函数,它使用了 python 的多进程模块。 我看了 serial version of this question. I decided upon Snakeviz on reading zaxiliu's solution 的答案。 但是天真地在我的代码上尝试它失败了。那么我必须做什么来分析我的代码呢?我的心不在Snakeviz上。我不介意使用任何其他图形工具。

没有完全满足问题要求,但如果没有其他可用的,也可以工作

尝试使用 serial_map 而不是来自同一个 module 的 parallel_map。 替换(或者更好的是注释掉)行

from qutip.parallel import parallel_map

from qutip.parallel import serial_map

现在你有了代码的串行实现。这可以使用您问题的 serial version 中描述的那些进行分析。 在此之后(假设你继续Snakeviz

  • 制作配置文件

    python -m cProfile -o program.prof my_program.py

  • 运行 Snakeviz 在上一步生成的配置文件上

    snakeviz program.prof