[Python3] 029 常用模块 timeit
2024-08-30 23:48:23
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
最新文章
- bnuoj 24251 Counting Pair
- SQL简介
- java练习题(字符串类):显示4位验证码、输出年月日、从XML中抓取信息
- Linux Cache Mechanism Summary(undone)
- InnoDB: Error: could not open single-table tablespace file
- C#实现汉字转换为拼音缩写的代码
- c# 二维码 显示
- 用Wget进行下载
- js 输出HTML 样式
- C#与Java区别(一)
- 迭代var()内置函数的时候出现RuntimeError: dictionary changed size during iteration的解决办法
- Nginx的try_files指令和命名location使用实例
- ArrayList源码学习
- 【转载】window.open被浏览器拦截的解决办法
- ThinkPHP3.2.3框架下接入阿里云短信服务接口实现:注册登录
- Tor源码阅读与改造(一)
- python学习笔记四——循环及冒泡排序
- Spring+SpringMVC+Mybatis整合(二)
- mac使用influxdb和grafana
- shell脚本${}、##和%%使用范例