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中面向对象编程的相关知识
May 25 Python
Python进行数据提取的方法总结
Aug 22 Python
Python编程之event对象的用法实例分析
Mar 23 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
Django Python 获取请求头信息Content-Range的方法
Aug 06 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 Python
基于python实现查询ip地址来源
Jun 02 Python
详解如何在PyCharm控制台中输出彩色文字和背景
Aug 17 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
Jan 27 Python
Elasticsearch 数据类型及管理
Apr 19 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中去除所有js,html,css代码
2010/10/12 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
PHP的autoload机制的实现解析
2012/09/15 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
基于Python开发chrome插件的方法分析
2018/07/07 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
python conda操作方法
2019/09/11 Python
Python的几种主动结束程序方式
2019/11/22 Python
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
企业申诉管理制度
2014/01/30 职场文书
房产转让协议书
2014/04/11 职场文书
欢迎标语大全
2014/06/21 职场文书
单身申明具结书
2015/02/26 职场文书
《少年闰土》教学反思
2016/02/18 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书