将cProfile的结果限制为包含“something”_和/或_“something_else”的行

时间:2009-03-29 22:22:59

标签: python

我正在使用cProfile来分析整个应用程序的主要功能。除了正在分析的一些第三方库以及输出中显示之外,它工作得很好。读取输出时并不总是这样。

我的问题是,我怎么能限制这个? documentation on python profilers提及:

p.sort_stats('time', 'cum').print_stats(.5, 'init')
  

此行使用主键时间和累计时间的辅助键对统计信息进行排序,然后打印出一些统计信息。具体来说,列表首先被剔除到其原始大小的50%(re:.5),然后只维护包含init的行,并打印该子子列表。 / p>

它提到仅显示包含“init”的行。这很好用,但我想以这样的方式限制它,以便我可以说,限制包含“init”和/或“get”的行。通过反复试验我发现你可以添加另一个参数,一个字符串,它将被进一步过滤,只显示包含string1 string2的行。使用我之前的示例,这看起来像:

p.sort_stats('time', 'cum').print_stats(.5, 'init', 'get')

任何人都知道如何限制线条,以便只显示包含“init”和/或“get”的行?

1 个答案:

答案 0 :(得分:0)

根据您链接的文档,字符串是正则表达式:

  

每个限制都是整数   ...,或正则表达式(to   模式匹配标准名称   印刷;从Python 1.5b1开始,这个   使用Perl风格的正则表达式   re模块定义的语法)

因此:

p.sort_stats('time', 'cum').print_stats(.5, 'init|get')

应该有用。