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 3中print函数的换行详解
Aug 08 Python
Python回文字符串及回文数字判定功能示例
Mar 20 Python
Python实现加载及解析properties配置文件的方法
Mar 29 Python
python实现自动解数独小程序
Jan 21 Python
python定时复制远程文件夹中所有文件
Apr 30 Python
使用Python实现文字转语音并生成wav文件的例子
Aug 08 Python
python批量修改ssh密码的实现
Aug 08 Python
Python3实现配置文件差异对比脚本
Nov 18 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
最新2019Pycharm安装教程 亲测
Feb 28 Python
numba提升python运行速度的实例方法
Jan 25 Python
python openpyxl模块的使用详解
Feb 25 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
一个程序下载的管理程序(三)
2006/10/09 PHP
PHP之数组学习
2011/05/29 PHP
php各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
2017/05/17 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
ReactNative页面跳转Navigator实现的示例代码
2017/08/02 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
2019/09/25 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
煤矿班组长的职责
2013/12/25 职场文书
敬老文明号事迹材料
2014/01/16 职场文书
《秋游》教学反思
2014/04/24 职场文书
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL