python代码时间的最小度量
tim的Python项目详细描述
蒂米
python代码时间的最小度量
timy comes with a different idea of the built-in module timeit. It adds flexibility and different ways of measuring code time, using simple context managers and function decorators.
安装
pip install timy
用法
修饰函数
假设您有一个calculate
函数,并且希望跟踪它的执行时间
importtimy@timy.timer()defcalculate(n,r):""" Divide, multiply and sum 'n' to every number in range 'r' returning the result list """return[i/n*n+nforiinrange(r)]
无论何时调用该函数,都会跟踪执行时间
calculate(5,10000000)>>Timyexecuted(calculate)for1time(s)in1.529540seconds>>Timybesttimewas1.529540seconds
更改ident并将loops添加到执行中
importtimy@timy.timer(ident='My calculation',loops=10)defcalculate(n,r):return[i/n*n+nforiinrange(r)]calculate(5,10000000)>>Mycalculationexecuted(calculate)for10time(s)in15.165313seconds>>Mycalculationbesttimewas1.414186seconds
沿着代码跟踪特定点
with
语句也可用于测量代码时间
Named tracking points can be added with the
track
function
importtimywithtimy.Timer()astimer:N=10000000foriinrange(N):ifi==N/2:timer.track('Half way')>>Timy(Halfway)0.557577seconds>>Timy0.988087seconds
在素数函数中跟踪的另一种用法
defprime_factors(n):withtimy.Timer('Factors')astimer:i=2factors=[]defadd_factor(n):factors.append(n)timer.track('Found a factor')whilei*i<=n:ifn%i==0:add_factor(i)n//=ielse:i+=1returnfactors+[n]factors=prime_factors(600851475143)print(factors)>>Factors(Foundafactor)0.000017seconds>>Factors(Foundafactor)0.000376seconds>>Factors(Foundafactor)0.001547seconds>>Factors0.001754seconds>>[71,839,1471,6857]
配置
导入timy配置
fromtimy.settingsimporttimy_config
启用或禁用定时跟踪
可以使用tracking
值启用或禁用timy跟踪。
The default value of
tracking
isTrue
timy_config.tracking=False
更改timy输出信息的方式
通过设置
tracking_mode
的值。
The default value of
tracking_mode
isTrackingMode.PRINTING
.
fromtimy.settingsimport(timy_config,TrackingMode)timy_config.tracking_mode=TrackingMode.LOGGING
timy记录在信息级别,默认情况下不打印或存储。到 将日志系统配置为打印所有信息消息do
import logging
logging.basicConfig(level=logging.INFO)
或者将日志系统配置为只打印timy的信息消息
import logging
logging.basicConfig()
logging.getLogger('timy').level=logging.INFO
贡献
贡献总是受欢迎,但要保持简单和小。
许可证
这个项目是根据麻省理工学院的许可证授权的-请参见LICENSE文件以了解详细信息
更改日志
V 0.4.0(2017年9月23日)
- 放弃PY2支持,并通过CI集成增加100%的覆盖率
V 0.3.3(2017年4月19日)
- 添加可选参数
include_sleeptime
以计算经过的时间,包括睡眠时间(include_sleeptime=True
)和不包括睡眠时间(include_sleeptime=False
)