python代码时间的最小度量

tim的Python项目详细描述


蒂米

Python 3.3Python 3.4Python 3.5Python 3.6

CircleCICodecov

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 is True

timy_config.tracking=False

更改timy输出信息的方式

通过设置 tracking_mode的值。

The default value of tracking_mode is TrackingMode.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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java搜索大数组中的最小数   java如何将数组变量用于IF语句?   多线程如何在java中使用多核?   java实现中的数据结构单链表,无限打印输出?   java检查命令行参数是否按有效顺序传递   爪哇点火。ignite返回“网格实例未正确启动或已停止”   java如何同时使用toString()或print()等显示两个输出?   在Java中使用LinkedList列出两个多项式的加法   Java中并行流的正确使用   mac上的java Eclipse:单击Eclipse图标后崩溃,重新安装,但无法为pyDev创建视图   java如何在sqlite4java中禁用自动提交?   java这样行吗?Synchronized(线程),然后synch块中的thread=null   java方法。调用它可以接受的参数?