码迷,mamicode.com
首页 > 编程语言 > 详细

[Python3] 029 常用模块 timeit

时间:2019-12-13 23:46:13      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:end   列表   运行时   tle   运行   模块   print   func   生成式   

timeit

直接举例

  • 必要的导入
import timeit

1. 测量生成列表的时间

  • 像是 C 或者 Js 中把函数作为参数传入
>>> func = '''
... arr = []
... for i in range(1000):
...   arr.append(i)
... '''
>>> t1 = timeit.timeit(stmt=func, number=10000)
>>> t2 = timeit.timeit(stmt="[i for i in range(1000)]", number=10000)
>>> t1
1.0912232999999105
>>> t2
0.5270981999999549
  • 可以看出,列表生成式比 "append" 快

2. 测量函数运行时间(一)

  • 公共部分
>>> def func(num=3):
...   for i in range(num):
...     print(f"Repeat for {i}.")
...
>>> 
  • 版本一
>>> t = timeit.timeit(stmt=func, number=5)
Repeat for 0.
Repeat for 1.
Repeat for 2.
Repeat for 0.
Repeat for 1.
Repeat for 2.
Repeat for 0.
Repeat for 1.
Repeat for 2.
Repeat for 0.
Repeat for 1.
Repeat for 2.
Repeat for 0.
Repeat for 1.
Repeat for 2.
>>> t
0.0009049000000231899
  • 版本二
>>> t = timeit.timeit(stmt=func, setup="func"+"num=5", number=5)
Repeat for 0
Repeat for 1
Repeat for 2
Repeat for 0
Repeat for 1
Repeat for 2
Repeat for 0
Repeat for 1
Repeat for 2
Repeat for 0
Repeat for 1
Repeat for 2
Repeat for 0
Repeat for 1
Repeat for 2
>>> t
0.008177499999874271
  • t = timeit.timeit(func, setup="funcnum=5", number=5) 也行,但不直观

3. 测量函数运行时间(二)

>>> s = '''
... def func(num):
...   for i in range(num):
...     print(f"Repeat for {i}")
... '''
>>> t = timeit.timeit(stmt="func(num)", setup=s+"num=3", number=5)
Repeat for 0
Repeat for 1
Repeat for 2
Repeat for 0
Repeat for 1
Repeat for 2
Repeat for 0
Repeat for 1
Repeat for 2
Repeat for 0
Repeat for 1
Repeat for 2
Repeat for 0
Repeat for 1
Repeat for 2
>>> t
0.0020025999997415056

[Python3] 029 常用模块 timeit

标签:end   列表   运行时   tle   运行   模块   print   func   生成式   

原文地址:https://www.cnblogs.com/yorkyu/p/12037517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!