python中的计时器:timeit

timeit

  • 通常在一段程序的前后都用上time.time(),然后进行相减就可以得到一段程序的运行时间,不过python提供了更强大的计时库:timeit

#导入timeit.timeit
from timeit import timeit #看执行1000000次x=1的时间:
timeit('x=1') #看x=1的执行时间,执行1次(number可以省略,默认值为1000000):
timeit('x=1', number=1) #看一个列表生成器的执行时间,执行1次:
timeit('[i for i in range(10000)]', number=1) #看一个列表生成器的执行时间,执行10000次:
timeit('[i for i in range(100) if i%2==0]', number=10000)

测试一个函数的执行时间:

from timeit import timeit

def func():
s = 0
for i in range(1000):
s += i
print(s) # timeit(函数名_字符串,运行环境_字符串,number=运行次数)
t = timeit('func()', 'from __main__ import func', number=1000)
print(t)
  • 此程序测试函数运行1000次的执行时间

repeat:

  • 由于电脑永远都有其他程序也在占用着资源,你的程序不可能最高效的执行。所以一般都会进行多次试验,取最少的执行时间为真正的执行时间。
from timeit import repeat

def func():
s = 0
for i in range(1000):
s += i #repeat和timeit用法相似,多了一个repeat参数,表示重复测试的次数(可以不写,默认值为3.),返回值为一个时间的列表。
t = repeat('func()', 'from __main__ import func', number=100, repeat=5)
print(t)
print(min(t))

python中的计时器:timeit的更多相关文章

  1. python中的计时器:timeit模块

    python中的计时器:timeit模块 (1) timeit - 通常在一段程序的前后都用上time.time()然后进行相减就可以得到一段程序的运行时间,不过python提供了更强大的计时库:ti ...

  2. python中计时模块timeit的使用方法

    timeit 模块: timeit 模块定义了接受两个参数的 Timer 类.两个参数都是字符串. 第一个参数是你要计时的语句或者函数. 传递给 Timer 的第二个参数是为第一个参数语句构建环境的导 ...

  3. Python中的计时器对象

    计时器对象用于特定时间运行的操作.往往被安排到特定的单独的线程上运行, 但是计时器初始化的时间间隔可能不是解释器实际执行操作时的实际时刻, 因为线程调度程序负责实际调度与计时器对象相对应的线程. Ti ...

  4. 2 timeit模块,python中数据结构

    1.timeit模块:代码事件测量模块 timeit模块可以用来测试一小段Python代码的执行速度. class timeit.Timer(stmt='pass', setup='pass', ti ...

  5. [Python] Python中的一些特殊函数

    1. 过滤函数filter 定义:filter 函数的功能相当于过滤器.调用一个布尔函数bool_func来迭代遍历每个列表中的元素:返回一个使bool_func返回值为true的元素的序列. a=[ ...

  6. 理解Python中的装饰器

    文章先由stackoverflow上面的一个问题引起吧,如果使用如下的代码: @makebold @makeitalic def say(): return "Hello" 打印出 ...

  7. 理解Python中的装饰器//这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档

    转自:http://www.cnblogs.com/rollenholt/archive/2012/05/02/2479833.html 这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档 ...

  8. Python中的一些特殊函数

    阅读目录 1. 过滤函数filter 2. 映射和归并函数map/reduce 3. 装饰器@(有参数和无参数) 4. 匿名函数lamda 回到顶部 1. 过滤函数filter 定义:filter 函 ...

  9. Python中的高级数据结构详解

    这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...

随机推荐

  1. python函数的输入参数

    http://note.youdao.com/noteshare?id=c2a0a39ee3cae09a62dcbc9f96d04b56

  2. git clone 无权限

    错误提示: remote: Coding.net Tips : [You have no permission to access this repo.] fatal: unable to acces ...

  3. maven 依赖、聚合和继承 (转)

    Maven 插件和仓库 Maven 本质上是一个插件框架,它的核心并不执行任何具体的构建任务,仅仅定义了抽象的生命周期,所有这些任务都交给插件来完成的.每个插件都能完成至少一个任务,每个任务即是一个功 ...

  4. Python学习笔记(十五)用Python获取本地数据

    f1 = open(r'E:\Python\Data\data1.txt') #读取data1.txt文件,使用系统默认缓冲区大小, 为了读取快点,使用缓存吧! f = open(r'E:\Pytho ...

  5. TCP和UDP相关概念

    位于传输层的协议,都是基于IP协议的. TCP是面向连接的.可靠的传输,UDP是无连接的.不可靠的传输.要进行TCp传输时候,需要进行三次握手,建立连接,然后才能发送数据,而且在发送过程中,有数据的确 ...

  6. Windows下搭建网络代理

    场景:有些场景下会出现局域网内的某些网段可能由于安全限制,不能访问外网,此时可以通过安装一些工具来实现借助局域网内某些能够上外网的电脑来实现网络代理的功能.以下工具均是使用于Window环境. 服务端 ...

  7. IO流-文件拷贝

    其实文件的拷贝还是文件读取写入的应用,实际是读取此路径上的文件,然后写入到指定路径下的文件. 代码举例: import java.io.*; import java.lang.*; class Tes ...

  8. 51nod 1140 矩阵相乘结果的判断

    给出三个N*N的矩阵A, B, C,问A * B是否等于C?   Input 第1行,1个数N.(0 <= N <= 500) 第2 - N + 1行:每行N个数,对应矩阵A的元素.(0  ...

  9. iOS中响应者链条-触摸事件,hitTest方法坐标转换

    总体来说,分2个步骤: 一,从上到下寻找合适的控件来处理这个触摸事件.如下图,如果点击了黄色4,则UIApplication -> UIWindow -> 1白色 -> 2橙色 -& ...

  10. wifi钓鱼 强势拿你的wifi密码

    钓鱼wifi 首先设一个场景!!! 如何得到一个免费的wifi  有人可能做过抓包跑包的方法或者跑pin码的方法然而这些方法可能会耗去你大量的时间(我曾经跑包花了一天的时间  跑pin码花了一晚上)感 ...