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中的字符串操作和编码Unicode详解
Jan 18 Python
Python使用plotly绘制数据图表的方法
Jul 18 Python
分析python切片原理和方法
Dec 19 Python
python实现简单的单变量线性回归方法
Nov 08 Python
win10环境下配置vscode python开发环境的教程详解
Oct 16 Python
简单了解python字符串前面加r,u的含义
Dec 26 Python
Python调用.NET库的方法步骤
Dec 27 Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
May 15 Python
python 绘制场景热力图的示例
Sep 23 Python
Django实现在线无水印抖音视频下载(附源码及地址)
May 06 Python
Python+tkinter实现高清图片保存
Mar 13 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中的unset究竟会不会释放内存
2013/07/18 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
php解决安全问题的方法实例
2019/09/19 PHP
实例讲解PHP表单
2020/06/10 PHP
调用js时ie6和ie7,ff的区别
2009/08/19 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
2010/06/19 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
Python 如何访问外围作用域中的变量
2016/09/11 Python
python环境路径配置以及命令行运行脚本
2019/04/02 Python
python实现静态web服务器
2019/09/03 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
2020/02/17 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
市场营销调查计划书
2014/05/02 职场文书
2016中学教师读书心得体会
2016/01/13 职场文书
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
SQLServer之常用函数总结详解
2021/08/30 SQL Server
nginx实现动静分离的方法示例
2021/11/07 Servers