python中的计时器:timeit

timeit
通常在一段程序的前后都用上time.time(),然后进行相减就可以得到一段程序的运行时间,不过python提供了更强大的计时库:timeit

Python
#导入timeit.timeit from timeit import timeit #看执行1000000次x=1的时间: timeit('x=1') #看x=1的执行时间,执行1次(number可以省略,默认值为1000000): timeit('x=1', number=1) #看一个列表生成器的执行时间,执行1次: timeit('[i for i in range(10000)]', number=1) #看一个列表生成器的执行时间,执行10000次: timeit('[i for i in range(100) if i%2==0]', number=10000)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#导入timeit.timeit
from timeit import timeit   
 
#看执行1000000次x=1的时间:
timeit ( 'x=1' )
 
#看x=1的执行时间,执行1次(number可以省略,默认值为1000000):
timeit ( 'x=1' , number = 1 )
 
#看一个列表生成器的执行时间,执行1次:
timeit ( '[i for i in range(10000)]' , number = 1 )
 
#看一个列表生成器的执行时间,执行10000次:
timeit ( '[i for i in range(100) if i%2==0]' , number = 10000 )

测试一个函数的执行时间:

Python
from timeit import timeit def func(): s = 0 for i in range(1000): s += i print(s) # timeit(函数名_字符串,运行环境_字符串,number=运行次数) t = timeit('func()', 'from __main__ import func', number=1000) print(t)
1
2
3
4
5
6
7
8
9
10
11
from timeit import timeit
 
def func ( ) :
     s = 0
     for i in range ( 1000 ) :
         s += i
     print ( s )
 
# timeit(函数名_字符串,运行环境_字符串,number=运行次数)
t = timeit ( 'func()' , 'from __main__ import func' , number = 1000 )
print ( t )

repeat:
由于电脑永远都有其他程序也在占用着资源,你的程序不可能最高效的执行。所以一般都会进行多次试验,取最少的执行时间为真正的执行时间。

Python
from timeit import repeat def func(): s = 0 for i in range(1000): s += i #repeat和timeit用法相似,多了一个repeat参数,表示重复测试的次数(可以不写,默认值为3.),返回值为一个时间的列表。 t = repeat('func()', 'from __main__ import func', number=100, repeat=5) print(t) print(min(t))
1
2
3
4
5
6
7
8
9
10
11
from timeit import repeat
 
def func ( ) :
     s = 0
     for i in range ( 1000 ) :
         s += i
 
#repeat和timeit用法相似,多了一个repeat参数,表示重复测试的次数(可以不写,默认值为3.),返回值为一个时间的列表。
t = repeat ( 'func()' , 'from __main__ import func' , number = 100 , repeat = 5 )
print ( t )
print ( min ( t ) )




  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值