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统计字符串中指定字符出现次数的方法
Apr 04 Python
Python实现的密码强度检测器示例
Aug 23 Python
Python函数和模块的使用总结
May 20 Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
PyTorch和Keras计算模型参数的例子
Jan 02 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
Feb 26 Python
解决jupyter运行pyqt代码内核重启的问题
Apr 16 Python
使用python matplotlib 画图导入到word中如何保证分辨率
Apr 16 Python
Python Selenium截图功能实现代码
Apr 26 Python
Python 执行矩阵与线性代数运算
Aug 01 Python
如何通过一篇文章了解Python中的生成器
Apr 02 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 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
开启PHP Static 关键字之旅模式
2015/11/13 PHP
php实现学生管理系统
2020/03/21 PHP
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
2018/09/01 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
Python编写登陆接口的方法
2017/07/10 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
2012/11/29 HTML / CSS
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
金智子午JAVA面试题
2015/09/04 面试题
高中生的自我评价
2014/03/04 职场文书
安全生产承诺书
2014/03/26 职场文书
商场主管竞聘书
2014/03/31 职场文书
工作建议书范文
2014/05/13 职场文书
大学运动会通讯稿
2015/07/18 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python
redis数据结构之压缩列表
2022/03/21 Redis