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中使用poplib模块收取邮件的教程
Apr 29 Python
python多线程之事件Event的使用详解
Apr 27 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
不管你的Python报什么错,用这个模块就能正常运行
Sep 14 Python
python利用小波分析进行特征提取的实例
Jan 09 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 Python
使用Python opencv实现视频与图片的相互转换
Jul 08 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
Python any()函数的使用方法
Oct 28 Python
调用其他python脚本文件里面的类和方法过程解析
Nov 15 Python
python 解决pycharm运行py文件只有unittest选项的问题
Sep 01 Python
详解Python中的for循环
Apr 30 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
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
PHP 与 UTF-8 的最佳实践详细介绍
2017/01/04 PHP
PHP多进程编程实例详解
2017/07/19 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
无阻塞加载脚本分析[全]
2011/01/20 Javascript
IE6 fixed的完美解决方案
2011/03/31 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
Jquery的each里用return true或false代替break或continue
2014/05/21 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
JavaScript判断textarea值是否为空并给出相应提示
2014/09/04 Javascript
jQuery源码解读之addClass()方法分析
2015/02/20 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
JavaScript中如何判断一个值的类型
2017/09/15 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
2018/04/17 Javascript
对angularJs中ng-style动态改变样式的实例讲解
2018/09/30 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
Python3爬虫学习入门教程
2018/12/11 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
活动邀请函范文
2014/01/19 职场文书
森林防火标语
2014/06/23 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
python 如何执行控制台命令与操作剪切板
2021/05/20 Python