过滤掉不相关的 cProfile 输出
Filtering out irrelevant cProfile output
我正在使用 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 输出,以便我只能查看此函数及其调用方?
我看过,但它只讲看输出的head
。
幸运的是,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
我正在使用 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 输出,以便我只能查看此函数及其调用方?
我看过head
。
幸运的是,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