跳转到主要内容

为单个函数的剖析/计时/跟踪提供装饰器

项目描述

profilehooks

https://travis-ci.org/mgedmin/profilehooks.svg?branch=master https://ci.appveyor.com/api/projects/status/github/mgedmin/profilehooks?branch=master&svg=true https://coveralls.io/repos/mgedmin/profilehooks/badge.svg?branch=master

这是一个用于剖析函数的装饰器集合。例如,要剖析单个函数

from profilehooks import profile

@profile
def my_function(args, etc):
    pass

当程序退出时将打印结果(或者您可以使用 @profile(immediate=True))。

如果您对粗略的计时感兴趣,又不想支付剖析的开销,请使用

from profilehooks import timecall

@timecall       # or @timecall(immediate=True)
def my_function(args, etc):
    pass

最后,您可能对查看单个函数的行覆盖率感兴趣

from profilehooks import coverage

@coverage
def my_function(args, etc):
    pass

此外,如果使用 -m arg 运行,函数也可以在Python控制台或模块中使用

$ python -m profilehooks
>>> profile
<function profile at 0x1005c6488>

$ python -m profilehooks yourmodule

安装后,通过 pydoc profilehooks 可以查看完整文档。

此模块的主页为 https://mg.pov.lt/profilehooks。它有截图,嗯,也就是更多的例子。

变更日志

1.12.0 (2020-08-20)

1.11.2 (2020-03-03)

1.11.1 (2020-01-30)

1.11.0 (2019-04-23)

1.10.0 (2017-12-09)

1.9.0 (2017-01-02)

  • 取消 Python 3.2 兼容性声明。尽管如此,一切正常运作,但我不再在 3.2 上运行自动化测试,因此可能会出现回归。

  • 取消 Python 2.6 兼容性。

  • 添加 Python 3.6 兼容性。

1.8.1 (2015-11-21)

1.8.0 (2015-03-25)

  • 新选项: @profile(stdout=False) 用于抑制输出到 sys.stdout。

1.7.1 (2014-12-02)

  • 使 @profile(profiler='hotshot') 重新工作。这可能在 1.0 或 1.1 中损坏,但没有人提出异议。

  • 修复 @profile(skip=N) 输出中缺失的空格。

  • 使 @coverage_with_hotshot 输出与 @coverage 输出精确匹配。

  • 100% 测试覆盖率。

  • 声明 Python 3.4 和 PyPy 兼容性。

1.7 (2013-10-16)

1.6 (2012-06-05)

1.5 (2010-08-13)

  • 为 @timecall 添加新参数:timer(默认为 time.time)。例如:@timecall(timer=time.clock)

  • 更好的文档。

1.4 (2009-03-31)

  • 添加了对 cProfile 的支持,当可用时将其作为默认分析器。之前 profilehooks 仅支持 profile 和 hotshot。

1.3 (2008-06-10)

  • 将分析结果(当您将文件名传递给 @profile 时)以 pstats 格式存储,而不是 pickles。由 Florian Schulze 贡献。

1.2 (2008-03-07)

  • 为 @timecall 添加新参数:immediate(默认为 False)。

  • 添加了测试套件。

1.1 (2007-11-07)

  • 第一次发布到 PyPI,包括 setup.py 等。

  • 为 @profile 添加新参数:dirs、sort、entries。由 Hanno Schlichting 贡献。

  • 在装饰函数时保留函数属性,如 __doc__ 和 __module__。

  • Pydoc 友好的文档字符串包装和其他文档字符串改进。

1.0 (2006-12-06)

  • 将许可证从 GPL 更改为 MIT。

  • 新装饰器:@timecall

  • 为 @profile 添加新参数:skip、filename、immediate。

  • 在确信 hotshot 不可靠后,添加了对 profile 的支持。将其作为默认分析器。

0.1 (2004-12-30)

  • 第一次公开发布(实际上没有版本号),在我的博客上宣布:请参阅https://mg.pov.lt/blog/profiling.html

  • @profile 和 @coverage 装饰器不接受任何参数。

  • 对于 @profile,hotshot 是唯一受支持的分析器,而 @coverage 使用 trace.py。

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源代码分发

profilehooks-1.12.0.tar.gz (19.1 kB 查看哈希值)

上传时间 源代码

构建分发

profilehooks-1.12.0-py2.py3-none-any.whl (12.0 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者