Python代码执行时间测量模块timeit用法解析


Posted in Python onJuly 01, 2020

1.timeit模块

timeit模块可以用来测试一小段python代码的执行速度

class timeit.Timer(stmt = 'pass',setup = 'pass',timer=<timer function>)

  • Timer是测量小段代码执行速度的类
  • stmt参数是要测试的代码语句(statment);
  • setup参数是运行代码时需要的设置;
  • timer参数是一个定时器函数,与平台有关(windows,unix,linux,mac)。

timeit.timer(number = 10000)

Timer类中测试语句执行速度的对象方法。number参数是测试代码时的测试次数,默认为1000000(一百万)次。
该方法返回执行代码的平均耗时,是一个float类型的seconds。

2.使用timeit模块对python中list内置操作的时间复杂度测算

Python代码执行时间测量模块timeit用法解析
Python代码执行时间测量模块timeit用法解析

3.测算代码块:

#下面列出list的几种常用内置方法以及list的几种构建方法
	
#coding:utf-8
 
#导入timeit模块
 
import timeit
 
#t1,以+的方式构建列表
 
'''
	li1 = [1,2]
 
	li2 = [23,24]
 
	li = li1 + li2
 
	#t2,列表生成器
 
	li = [i for i in range(10000)]
 
	#t3,将可迭代对象(range)直接转换成列表
 
	li = list(range(10000))
 
	#t4,先创建一个空列表,然后用.append方法添加元素
 
	li = []
 
	for i in range(10000):
		li.append(i)
'''
#下面开始测算
 
#append方法对空列表添加元素构造列表
def t1():
	li = []
	for i in range(10000):
		li.append(i)
#+的方法构造列表
def t2():
	li = []
	for i in range(10000):
		li += [i]
#列表生成器
def t3():
	li = [i for i in range(10000)]
#转换可迭代对象为列表
def t4():
	li = list(range(10000))
 
timer1 = timeit.Timer('t1()','from __main__ import t1')
print('+:',timer1.timeit(1000))
 
timer2 = timeit.Timer('t2()','from __main__ import t2')
print('append:',timer2.timeit(1000))
 
timer3 = timeit.Timer('t3()','from __main__ import t3')
print('列表生成器:',timer3.timeit(1000))
 
timer4 = timeit.Timer('t4','from __main__ import t4')
print('直接转换可迭代对象:',timer4.timeit(1000))

4.运行结果

+: 0.7415732243125414
append: 0.7872105163322995
列表生成器: 0.3843147415048551
直接转换可迭代对象: 1.3879485965428984e-05
[Finished in 2.0s]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详细解读Python中解析XML数据的方法
Oct 15 Python
python3实现ftp服务功能(客户端)
Mar 24 Python
Python字符串处理实例详解
May 18 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
Django入门使用示例
Dec 12 Python
Python线程之定位与销毁的实现
Feb 17 Python
python在回调函数中获取返回值的方法
Feb 22 Python
Python3.5文件修改操作实例分析
May 01 Python
Django保护敏感信息的方法示例
May 09 Python
python使用requests.session模拟登录
Aug 09 Python
Django中的cookie和session
Aug 27 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
Python 存取npy格式数据实例
Jul 01 #Python
基于python实现音乐播放器代码实例
Jul 01 #Python
使用ITK-SNAP进行抠图操作并保存mask的实例
Jul 01 #Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 #Python
.img/.hdr格式转.nii格式的操作
Jul 01 #Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
Jul 01 #Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
Jul 01 #Python
You might like
怎样才能成为PHP高手?学会“懒惰”的编程
2006/12/05 PHP
php读取excel文件的简单实例
2013/08/26 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
JavaScript中获取元素索引的函数
2010/09/10 Javascript
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
js和jquery设置disabled属性为true使按钮失效
2014/08/07 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
python hook监听事件详解
2018/10/25 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
Pycharm调试程序技巧小结
2020/08/08 Python
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
学生实习自我鉴定
2013/10/11 职场文书
乡镇干部先进事迹材料
2014/02/03 职场文书
爱与责任演讲稿
2014/05/20 职场文书
小学作文之描写天气
2019/08/15 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏
如何判断pytorch是否支持GPU加速
2021/06/01 Python
Redis命令处理过程源码解析
2022/02/12 Redis