将pprofile输出保存到文件

时间:2019-06-27 16:26:11

标签: python-2.7 profiling

我正在使用pprofile对python脚本进行行分析。但是,由于pprofile还配置了我的脚本调用的所有模块,因此输出非常长,并且在命令行中被切断。我只对分析脚本的输出感兴趣,该脚本位于输出的开头,因此被切断了。有没有办法:

  1. 告诉pprofile仅输出分析脚本的结果,而不输出其他模块,或者
  2. 将pprofile输出保存到文件中以便我可以看到它的开头吗?

1 个答案:

答案 0 :(得分:1)

  1. 告诉pprofile仅输出分析脚本的结果,而没有输出其他模块,或者

--exclude-syspath--exclude some_regex--include some_regex选项。对于简单的设置,它们应该非常易于使用。

一些背景:

  • 如何匹配文件系统上不存在的文件?将您的正则表达式基于您感兴趣的代码的名称,如pprofile输出中所示。匹配的值可能看起来像文件名,但实际上是co_filename,可以是任意值。
  • 为什么用正则表达式而不是通配符?由于该值可能不是路径,因此我认为通配可能不适用,而正则表达式可能更适合该任务。
  1. 将pprofile输出保存到文件中以便可以看到它的开头吗?

有一个-o / --output选项可以将输出定向到文件而不是标准输出。根据终端/外壳的不同,您还可以使用流重定向操作,通常是>pprofile some_script.py > pprofile_output.txt

进一步,在较大的程序上,我建议使用--format callgrindqcachegrind / kcachegrind(取决于您的操作系统)以比普通连接更方便的方式可视化分析结果源代码。与--zipfile结合使用时,如果您要在无头计算机上对代码进行概要分析并在另一台计算机上分析输出,则还具有提取概要分析的源代码的额外好处。