如何分析使用 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
我有一个使用函数 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