【问题标题】:How to profile a script which uses python's multiprocessing如何分析使用 python 多处理的脚本
【发布时间】:2019-09-13 15:01:14
【问题描述】:

我有一个使用函数parallel_map 的脚本文件。 (source code of qutip.parallel.parallel_map)来自包QuTiP。正如人们在单击该函数的source code 时所看到的那样,它使用了python 的多进程模块。 我查看了serial version of this question 的答案。我决定在阅读zaxiliu's solution 时选择Snakeviz。 但是在我的代码上天真地尝试它失败了。那么我必须做什么来分析我的代码?我的心不在Snakeviz。我不介意使用任何其他图形工具。

【问题讨论】:

    标签: python multiprocessing profiling qutip


    【解决方案1】:

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

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

    从 qutip.parallel 导入 parallel_map

    从 qutip.parallel 导入 serial_map

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

    • 制作配置文件

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

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

      snakeviz program.prof

    【讨论】:

      猜你喜欢
      • 2013-08-11
      • 2018-06-05
      • 1970-01-01
      • 2019-07-01
      • 2017-06-13
      • 1970-01-01
      • 2016-11-16
      • 2017-12-05
      相关资源
      最近更新 更多