Python:timeit库使用方法

timeit库:

  • timeit库定义了接受两个参数的Timer类。两个参数都是字符串。 第一个参数是要计时的语句或者函数;第二个参数是为第一个参数语句构建环境的导入语句。 从内部讲, timeit 构建起一个独立的虚拟环境, 手工地执行建立语句,然后手工地编译和执行被计时语句。

  • 一旦有了 Timer 对象,最简单的事就是调用 timeit(),它接受一个参数为每个测试中调用被计时语句的次数,默认为一百万次;返回所耗费的秒数。

  • Timer 对象的另一个主要方法是 repeat(), 它接受两个可选参数。 第一个参数是重复整个测试的次数,第二个参数是每个测试中调用被计时语句的次数。 两个参数都是可选的,它们的默认值分别是 3 和1000000。 repeat() 方法返回以秒记录的每个测试循环的耗时列表。Python 有一个方便的 min 函数可以把输入的列表返回成最小值,如: min(t.repeat(3, 1000000))

测试一个列表推导式与for循环的时间:

import timeitfoooo = """
sum = []
for i in range(1000):sum.append(i)
"""print(timeit.timeit(stmt="[i for i in range(1000)]", number=100000))
print(timeit.timeit(stmt=foooo, number=100000))# 结果
# 3.0098994999999604
# 5.630418200000008

通过10w次循环,发现使用列表推导式要比正常使用list追加元素会快上近5秒左右,速度快上近三倍。

timeit库抽象出了两个可以直接使用的方法,下面看一下模块里面的代码:

def timeit(stmt="pass", setup="pass", timer=default_timer,number=default_number, globals=None):"""Convenience function to create Timer object and call timeit method."""return Timer(stmt, setup, timer, globals).timeit(number)def repeat(stmt="pass", setup="pass", timer=default_timer,repeat=default_repeat, number=default_number, globals=None):"""Convenience function to create Timer object and call repeat method."""return Timer(stmt, setup, timer, globals).repeat(repeat, number)

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

from timeit import timeitdef func():s = 0for i in range(1000):s += iprint(s)# timeit(函数名_字符串,运行环境_字符串,number=运行次数)
t = timeit('func()', 'from __main__ import func', number=1000)
print(t)

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

from timeit import repeatdef func():s = 0for 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库测试代码片段运行时间

    timeit库文档:https://docs.python.org/zh-cn/3/library/timeit.html timeit 是一个用来测量小代码片段执行时间的工具库,有命令行和函数调用两 ...

  2. python第三方库安装方法-Python第三方库安装

    Python有一个全球社区:https://pypi.org/,在这里我们可以搜索任何主题的Python第三方库.PyPI全称是Python Package Index,指的是Python包的索引,它 ...

  3. python3库下载_下载安装Python第三方库的方法,最全方式,值得收藏

    一.利用Python中的pip进行第三方库的下载 首先我们要搞清楚Python中的pip是个什么东东?pip是一个安装和管理 Python包的工具,可以对python的包进行管理和升级等操作. 具体的 ...

  4. 最全总结Python 第三方库安装方法

    下面将自己学习过程中总结的Python第三方库的安装常用三种方法分享给大家,本人推荐前面两种方式.(已安装Python) 方法一:pip命令行直接安装 打开cmd命令窗口,通过命令 pip insta ...

  5. python records 库使用方法

    records 库由大名鼎鼎的 Kenneth Reitz 开发,他也是 python requests 库的作者.records 模块的口号是 SQL for the human.开发人员基本只需要 ...

  6. python代码需要背吗-Python 的库、方法这么多,写程序的时候能记住吗?

    能 -- 这就是平时的工作方式.vim写python,没安装其他插件,但有自己的配置文件. 常见的项目所常用的函数很难超过50个.大量的业务函数一旦被写出来就是负责直接处理业务,而不会被其他部分调用, ...

  7. Python 安装库的方法及解决pip 安装时速度缓慢的方法

    pip安装: pip是python内置的非常好用的下载工具,基本可以下载全部的python库. pip 是 Python 库管理工具,该工具提供了对Python 库的查找.下载.安装.卸载的功能. p ...

  8. python安装库的方法linalg_Python linalg.gmres方法代码示例

    本文整理汇总了Python中scipy.sparse.linalg.gmres方法的典型用法代码示例.如果您正苦于以下问题:Python linalg.gmres方法的具体用法?Python lina ...

  9. 安装python扩展库时只能使用pip_使用pip安装Python扩展库的方法

    本文节选自作者的<Python编程基础及应用>视频教程.Python编程基础及应用_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 使用pip进行安装 ...

最新文章

  1. iOS游戏开发教程资源
  2. 排序算法时间复杂度和稳定性
  3. java日志与业务分离_java日志分开打印
  4. CentOS6.2安装LAMP+DRUPAL网站(1)
  5. 任正非:华为云不能简单模仿阿里、亚马逊,要有所为有所不为|CEO说
  6. c语言编写生日祝福语大全,C++求高手帮忙写个程序...输出“生日快乐”四个字..用符号拼出来..谢谢啦...
  7. Mac 技术篇-搜狗输入法英文首字母自动大小写设置,mac系统首字母自动大小写设置
  8. human pose estimation期刊简单汇总
  9. arcgis api for javascript4.18加载天地图服务,并且加载自己的发布的动态地图服务
  10. 指针的形式与动态存储分配
  11. 搭建自己的简易服务器(公网)
  12. OWASP ZAP安装kali
  13. C语言求1000以内的所有水仙花数
  14. Python如何将仅包含音频内容的Mp4,提取并转换为Mp3
  15. 手写数字的识别分类+技术总结
  16. 233网校题库数据提取分析
  17. 智能手环一些模块总结
  18. 全志A83T芯片开发资料汇总分享(datasheet,sdk,量产工具)
  19. 数据库导入Excel表格
  20. 装修必看丨超详细省钱装修干货!

热门文章

  1. 《OSPF和IS-IS详解》
  2. Robot Framework 自动化框架大纲
  3. php一次上传多张图片,html5 multiple的使用。
  4. 微信公众平台客户端调试工具
  5. windows下安装python的包管理工具pip,scikit-learn
  6. Xcode6中Swift没有智能提示和自动补全功能
  7. linux之yum源设置代理
  8. MIT研制出空陆自动切换型无人机技术,构想多年的“飞行车”或将实
  9. 基于TCP/UDP的socket编程
  10. wndows make images