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实现的一个p2p文件传输实例
Jun 04 Python
Python中的字符串查找操作方法总结
Jun 27 Python
python docx 中文字体设置的操作方法
May 08 Python
python实现换位加密算法的示例
Oct 14 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
Feb 19 Python
Python多项式回归的实现方法
Mar 11 Python
python 对字典按照value进行排序的方法
May 09 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
Jan 17 Python
python re模块匹配贪婪和非贪婪模式详解
Feb 11 Python
pycharm中使用request和Pytest进行接口测试的方法
Jul 31 Python
详解Python yaml模块
Sep 23 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的autoLoad自动加载机制
2012/09/27 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
配置Nginx+PHP的正确思路与过程
2016/05/10 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
JS动画效果代码3
2008/04/03 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
基于jQuery ligerUI实现分页样式
2016/09/18 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
jQuery.validate.js表单验证插件的使用代码详解
2018/10/22 jQuery
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
Python实现的计算器功能示例
2018/04/26 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
Python进程的通信Queue、Pipe实例分析
2020/03/30 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
蒂娜商店:Tiina the Store
2019/12/07 全球购物
毕业生机械建模求职信
2013/10/14 职场文书
成绩单家长评语大全
2014/04/16 职场文书
党的群众路线对照检查材料
2014/08/27 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
史上最牛的辞职信
2015/02/28 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
同事欢送会致辞
2015/07/31 职场文书
离婚财产分割协议书
2015/08/11 职场文书