代码之家  ›  专栏  ›  技术社区  ›  Lee Olayvar

将cprofile的结果限制在包含“something”(某物)和/或“something”(某物)的行中

  •  1
  • Lee Olayvar  · 技术社区  · 17 年前

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

    我的问题是,我怎样才能限制这个?这个 documentation on python profilers 提到:

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

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

    它提到只显示包含“init”的行。这很好,但是我想限制它,这样我可以说,限制包含“in it”和/或“get”的行。通过反复试验,我发现你可以添加另一个参数,一个字符串,它将被进一步过滤,只显示包含字符串1的行。 斯特林二使用我以前的示例,如下所示:

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

    任何人都知道如何限制行,以便仅包含“init”的行 和/或 将显示“获取”?

    1 回复  |  直到 17 年前
        1
  •  0
  •   brian-brazil    17 年前

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

    每个限制都是一个整数 …,或正则表达式(to 模式与标准名称匹配 打印;从python 1.5b1开始, 使用Perl样式的正则表达式 由re模块定义的语法)

    因此:

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

    应该工作。