运行时和对指定函数、方法或代码片段的调用数。有选择地输出好的报告。
Aeon的Python项目详细描述
度量指定的函数、方法或代码片段的频率 执行了什么以及它们的运行时是什么。有选择地打印一份好的报告给 尽管原始数据可以作为 好。
轮廓
- 标记代码中应使用提供的 上下文管理器或装饰器。
- 告诉程序在以下情况下输出报告或提供数据 结束了。
- 运行你的程序。
- 是吗?????
- 利润。
基本用法
如何指定应监视的代码。
一段独立的代码。
fromaeonimporttimerwithtimer('my measurement'):# do stuff here...# to assign the measurement to a specific groupwithtimer('my measurement','general frobnication'):# do stuff here
功能。
fromaeonimporttimer@timerdefmy_function():pass
一种方法。
fromaeonimporttimerclassFoo(object):@timer.methoddefbar(self):pass
如何看报告。
fromaeonimporttimerprinttimer.report()printtimer# equivalent
其他功能
如果你想的话,你可以实例化你自己的计时器 并行使用多个。
fromaeonimportTimermy_timer=Timer()withmy_timer('my_measurement'):pass# orwithmy_timer('my_measurement','my_group'):pass@my_timerdeffoo():passclassFoo(object):@my_timer.methoddefbar(self):pass
可以查询计时器对象以获取特定的测量值或数据 用来生成报告。
此外,没有什么可以阻止您单独使用测量类:
fromaeonimportMeasurementm=Measurement()foriinxrange(100):m.start()# stuff happens herem.stop()assertm.calls==100printm.total_runtime,m.time_per_call
安装
安装很简单,因为:
$ sudo pip install aeon
基本原理
该代码最初用于计算物理项目 其中典型的运行时分布非常依赖于问题 就在手边。事实证明,它能让人感觉到时间在哪里 在计算期间花费,并快速显示部分代码何时继续 暴乱事实上,在该项目中,它是在生产中启用的,因为 头顶很低。
使它与众不同的是只监视 代码并可选地对这些部分进行逻辑分组(默认情况下, 它将使用类或模块名称)。
有更好的选择来进行适当的基准测试,比如cprofile。