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中self的用法
Jun 04 Python
Python判断文件或文件夹是否存在的三种方法
Jul 27 Python
Python中常用信号signal类型实例
Jan 25 Python
将python代码和注释分离的方法
Apr 21 Python
Python异常处理操作实例详解
Aug 28 Python
在pycharm中python切换解释器失败的解决方法
Oct 29 Python
对python产生随机的二维数组实例详解
Dec 13 Python
python aiohttp的使用详解
Jun 20 Python
Python实现朴素贝叶斯的学习与分类过程解析
Aug 24 Python
Python IDE环境之 新版Pycharm安装详细教程
Mar 05 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 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.ini中文版(1)
2006/10/09 PHP
利用php实现禁用IE和火狐的缓存问题
2012/12/03 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
vue组件学习教程
2017/09/09 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
python函数缺省值与引用学习笔记分享
2013/02/10 Python
Python中类型检查的详细介绍
2017/02/13 Python
Python内建模块struct实例详解
2018/02/02 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
2020/03/07 Python
Python 如何定义匿名或内联函数
2020/08/01 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
英国网上购买门:Direct Doors
2018/06/07 全球购物
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
编程输出如下图形
2013/11/24 面试题
工作建议书范文
2014/05/13 职场文书
2014年安全生产大检查方案
2014/05/13 职场文书
房产公证书格式
2015/01/26 职场文书
python实现自动清理文件夹旧文件
2021/05/10 Python
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers