【问题标题】:Filtering out irrelevant cProfile output过滤掉不相关的 cProfile 输出
【发布时间】:2019-11-28 14:15:01
【问题描述】:

我正在使用cProfile 分析一个Python 应用程序,我发现它的输出非常冗长。我正在使用此代码来创建配置文件并将其可视化:

PYTHONPATH=. \
    python3 \
    -m cProfile \
        -s cumtime \
        -o output.cprof \
    foo/__main__.py && \
gprof2dot \
    -f pstats \
    output.cprof | \
dot -Tpdf -o output.pdf

例如,这是我使用gprof2dot 创建的图表的一部分:

显然,这些是我不感兴趣的方法。但是,我知道我要检查的函数的名称,我们称之为foo:xxx:my_function。如何过滤 cProfile 输出,以便我只能查看此函数及其被调用者?

我见过this question,但它只谈论查看输出的head

【问题讨论】:

    标签: python cprofile


    【解决方案1】:

    幸运的是,gprof2dot 有一个过滤函数名称的选项。

    所以,我可以使用 -z 和节点上的函数名称来仅查看后代:

    python3 \
        -m cProfile \
            -s cumtime \
            -o output.cprof \
        foo/__main__.py && \
    gprof2dot \
        -f pstats \
        -z "foo:xxx:my_function" \
        output.cprof | \
    dot -Tpdf -o output.pdf
    

    【讨论】:

      猜你喜欢
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 2021-12-11
      相关资源
      最近更新 更多