对凡人的简单描述
hume的Python项目详细描述
休谟-对普通人进行简单快速的分析
hume是一个有趣的expirement-tured python包。简而言之,它公开了一个装饰符profile
,您可以使用它来度量
函数的执行时间。它使其协议明确,使用简单,配置灵活。
与许多分析库一样,hume增加了开销,这意味着在测试小块代码时,它的测量(通常)比实际执行时间慢。不要将其用于超级科学基准测试。
注意:python>;=3.6必需。
安装
您可以从PyPI:
安装hume
pip install hume
或:
pipenv install hume
★休谟.装饰师
★★剖面图
一个简单的decorator来度量函数的执行时间。
- 支持N次模拟和平均次数。
- 支持、识别和报告递归函数。
- (可选)列出提供给修饰函数的
args
和kwargs
。 - (可选)显示修饰函数的返回值
- (可选)在修饰函数中抑制
print
语句(默认值为False
,只为一个模拟报告输出)
profile
不会以任何方式修改修饰函数返回的内容。它唯一可能增加的是print
语句。
只需装饰任何功能:
fromhume.decoratorsimportprofile@profile(6)defslow_add(num):""" slow_add sleeps one second and returns num + 1 """time.sleep(1)returnnum+1print(slow_add(3))
让它完成它的工作:
profiling slow_add ------------------------------------------------ → name: slow_add → simulations: 6 → average execution time: 1.0034156345 seconds 4选项和默认值
profile
支持以下参数:
nums: int = 1
→要进行多少次模拟show_args: bool = False
→传递给修饰函数的显示args
show_kwargs: bool = False
→传递给修饰函数的显示kwargs
show_result: bool = False
→显示修饰函数返回值mute_console: bool = False
→在修饰的函数体中抑制print
语句。当您有一堆不想仅仅为了测量而删除的这些文件时,它非常有用。1
1即使mute_console
是False
,递归函数也将正常打印,而不是按nums
打印。lt;/small>;
对于递归函数,profile
只知道(并且不会污染控制台):
# recursive function@profile(2)deffactorial(n):ifn==1:return1returnn*factorial(n-1)factorial(3)
profiling factorial (recursive function detected) ------------------------------------------------ → name: factorial → simulations: 2 → average execution time: 0.00011469949999964868 seconds更改和覆盖默认值
如果不喜欢profile
的default configuration,可以导入CONFIG
dict并重写它们。例如,如果希望profile
在默认情况下包含修饰函数中的return
,可以执行以下操作:
fromhume.decoratorsimportprofile,CONFIGCONFIG["show_results"]=True@profile(2)defreturn_one():return1# you can always override your own defaults:@profile(show_result=False)defreturn_two_ignored():return2彩色输出
输出是彩色的,因为优先级: