python time.time()计算代码运行时间
计算一个代码跑多久
文章目录
- 1,time()
- 2.timeit()
- Timer()
- 用法1:在命令行上运行
- 用法2:在程序块中运行
- 单位问题:
1,time()
import timestart = time.time()
xxx
xxx
end = time.time()
running_time = end-start
print('time cost : %.5f sec' %running_time)
输出时间默认为秒(对于时间太短可能无法很精确)
举例:
计算两个数/数组相加的时间
import timedef display_time(func):def wrapper(*args):t1 = time.time()print('answer = %.2f'%func(*args))t2 = time.time()print('time cost: %.6f'%(t2-t1))return wrapper@display_time #使用装饰器的方法
def sum_(a,b):return (a+b)sum_(10,20)>>>answer = 30.00
>>>time cost: 0.004945
上面使用装饰器的方法可以参加笔者python教程第一部分12节
2.timeit()
1,python中文timeit
2,python 英文timeit
这里先看例题再看解析:
Timer()
from timeit import Timer #导入Timerdef sum_(a,b):return (a+b)
‘’‘计算a+b的和画的时间,计算1000的总时间’‘’
t1 = Timer("sum_(10,20)","from __main__ import sum_")
print("time cost %.5f seconds\n"%t1.timeit(number=1000))
注意,上面是计算1000次的总时间,不是平均时间
上面的核心是:
t1 = Timer("sum_(10,20)","from __main__ import sum_")
class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)
Timer()函数第一个参数是statement(声明),必须是str类型,第二个参数是setup(安装),所以上面的含义是,计算sum_(10,20)即10+20的和,其中sum_函数从__main__中导入,需要注意的是,main()函数就是我们当前的程序。
再举个例子:
import timeitx = list(range(20000))#[0,1,2,3...19999]
#使用pop函数去除列表的第一个数
popzero = timeit.Timer("x.pop(0)","from __main__ import x")
#计算1000次花的时间
print(popzero.timeit(number=1000))#使用pop去除最后一个数
popend = timeit.Timer("x.pop()","from __main__ import x")
print(popend.timeit(number=1000))>>>0.012933371937833726
>>>0.00024989701341837645
上面的方法是用来计算pop()和pop(i)(i表示第i个数)的运行时间的
从时间复杂度而言,pop(i)是O(n),是pop()始终是O(1).所以pop(i)的时间要长一些。
————————以下为原文————————
timeit有两种用法,
用法1:在命令行上运行
在命令行上运行1+1,并计算时间。
上面-m不可少,表示在命令行将library module库像脚本一样运行,即在命令行运行程序。
上面100000000 loops表示运行了1亿次1+1,而best of 3表示调用了三次timeit()函数,每调用一次timeit()都运行1亿次循环。通过调用三次,其中最好的一次(时间最小)是每次循环花了0.00788 usec(微秒),所以总时间是:
1亿×0.00788×10−6秒=7.8秒1亿\times 0.00788\times 10^{-6} 秒=7.8秒1亿×0.00788×10−6秒=7.8秒
这个运行多少loops在命令行上是不确定的,系统自己根据运行来执行,一般而言,运行时间越小,loops次数越多。另外这个7.8秒实际上并不需要算出来,因为我们只看一次运行的时间,所以1+1运行花了0.00788微秒。
但是我们可以自己来给定运行的loops次数,
这里用到的-n 等命令如下:
-s表示开始只执行一次,在下面会说到
用法2:在程序块中运行
强烈建议看这篇博文,写的很细 https://www.cnblogs.com/hengyumo/p/10617018.html
如果只想粗略知道如何用,看我写的即可
from timeit import timeitprint(timeit('1+1',number=1000))
上面代码等价于
from timeit import timeit
x='''
1+1
'''
print(timeit(stmt=x,number=1000))
stmt表示statement,放入需要执行的表达式,多个表达式用;分开
这个时间算的是1000次执行的时间,单位的计算见下文
假如把number=去掉,
from timeit import timeit
x='''
1+1
'''
print(timeit(stmt=x))
时间反而变长了,这是因为默认number=106=10^6=106,即计算了10的6次方次,总的时间。
单位问题:
假如计算的时候写number=1,即表示计算的是一次,输出的也是一次计算的时间,单位是秒。当不写number的时候,默认number是等于10610^6106,即计算了10的6次方次的总时间,所以单位是微秒
from timeit import timeit
import time
s=time.time()
x=[i**2 for i in range(10000)]
e=time.time()
print('%.8f'%(e-s))
print(timeit('x=[i**2 for i in range(10000)]',number=1))
上面写了number=1,所以单位都是秒
from timeit import timeit
import time
s=time.time()
x=[i**2 for i in range(10000)]
e=time.time()
print('%.8f'%(e-s))
print(timeit('x=[i**2 for i in range(10000)]'))
不写number,单位是微秒,(这个时候因为要计算1000000次,所以很慢)
可能会经常看到博文用%timeit xxx的用法,这个是在ipython里直接用的,不需要像python里面需要import timeit
%在ipython里叫做line magic魔法行命令,%%为cell magic魔法单元命令
python time.time()计算代码运行时间相关推荐
- R语言统计代码运行耗时实战:计算代码运行时间、使用proc.time函数计算代码运行时间
R语言统计代码运行耗时实战:计算代码运行时间.使用proc.time函数计算代码运行时间 目录
- 使用python装饰器计算函数运行时间的实例
装饰器在python里面有很重要的作用, 如果能够熟练使用,将会大大的提高工作效率 今天就来见识一下 python 装饰器,到底是怎么工作的. 本文主要是利用python装饰器计算函数运行时间 一些需 ...
- python计算时间装饰器_使用python装饰器计算函数运行时间的实例
装饰器在python里面有很重要的作用, 如果能够熟练使用,将会大大的提高工作效率 今天就来见识一下 python 装饰器,到底是怎么工作的. 本文主要是利用python装饰器计算函数运行时间 一些需 ...
- python历史性分布计算代码_量化交易中,如何使用Python计算「筹码分布」指标【附代码】 [量化小讲堂-64]...
引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总] 请点击此处 这是邢不行第 64 ...
- python 图像iou_如何通过python实现IOU计算代码实例
Intersection over Union(IOU)是一种测量在特定数据集中检测相应物体准确度的一个标准.IoU是一个简单的测量标准,只要是在输出中得出一个预测范围(bounding boxes) ...
- php计算代码运行时间与内存使用的一段代码
计算运行时间及内存使用,代码如下: <?php //开始计时 $HeaderTime = microtime(true);//参数true表示返回浮点数值//代码//...printf(&quo ...
- 使用console进行 性能测试 和 计算代码运行时间
对于前端开发人员,在开发过程中经常需要监控某些表达式或变量的值,如果使用用 debugger 会显得过于笨重,最常用的方法是会将值输出到控制台上方便调试. 最常用的语句就是console.log(ex ...
- js 使用console计算代码运行时间
需求 如果学习前端一定时间以后,就会考虑性能方面的问题.那么问题来了,我们怎么计算出一段代码的运行时间呢? 使用console.log配合Date对象计算 比如,我们计算sort方法排序十万个随机数组 ...
- python连续质数计算代码分析,素性测试的Miller-Rabin算法完全解析 (C语言实现、Python实现)...
因为文中存在公式,只能用图片方式上传了! 以下为C语言源代码: #include typedef long long unsigned LLU; typedef int BOOL; #define T ...
最新文章
- 检查用户显示器的分辨率
- AcWing 199. 余数之和 (除法分块)打卡
- 关于引用传递的测试题
- 北斗导航 | 从北一到北二再到北三,你应该知道的北斗导航系统
- 十三、深入Java的Scanner类
- html div box,html – 为转换后的div添加box-shadow
- 【Matlab】利用matlab画圆
- Word删除连续分节符
- 计算机中硬盘和移动硬盘的区别,笔记本硬盘和移动硬盘有什么区别
- 【技术认证介绍】阿里云认证介绍
- c语言if语句后的一对圆括号,在C语言中,紧跟在关键字if后一对圆括号里的表达式()...
- Canvas模拟太阳地球月球的运动过程
- 打开ssh通道是什么意思_PP助手里有一个“打开SSH通道”SHH是什么?能干什么?...
- (找规律)23,41,18,64,? 问号处填什么?
- MInesweeper
- 项目管理project模板_项目经理必备的6款项目管理软件
- 聚乙烯原料最新价格 聚丙烯价格多少钱一吨?
- 戴尔服务器硬盘监控软件,Hp Dell服务器硬件监控
- 开发者专属话题来袭,2023 亚马逊云科技中国峰会开发者大讲堂即将开讲!
- Kubeadm 在线快速部署 1.23 单master集群 【实验用】
热门文章
- 负离子发生器模块 ANION GENERATOR
- 搜java题的公众号_java搜题公众号
- android呼吸灯动画,Android高德地图自定义定位蓝点实现呼吸灯功能
- dede 表单必填_织梦dedecms自定义表单选项必填怎么修改
- java finally块_Java中的finally块是什么?
- python3 collections模块_Python3之collections模块
- java dolayout,Component
- java kryo 序列化_java中的序列化方式及dubbo使用kryo序列化
- 学而思python_感恩遇到学而思网校,让我找到做老师的使命感和成就感
- 如何得到iterator的当前元素_Java中迭代器Iterator详解