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的更多相关文章

  1. 09 . Python3之常用模块

    模块的定义与分类 模块是什么? 一个函数封装一个功能,你使用的软件可能就是由n多个函数组成的(先备考虑面向对象).比如抖音这个软件,不可能将所有程序都写入一个文件,所以咱们应该将文件划分,这样其组织结 ...

  2. 【Python3之常用模块】

    一.time 1.三种表达方式 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.命令如下 ...

  3. [Python3] 032 常用模块 random

    目录 random 1. random.random() 2. random.choice() 3. random.shuffle() 4. random.randint() 5. random.ra ...

  4. [Python3] 031 常用模块 shutil & zipfile

    目录 shutil 1. shutil.copy() 2. shutil.copy2() 3. shutil.copyfile() 4. shutil.move() 5. 归档 5.1 shutil. ...

  5. [Python3] 030 常用模块 os

    目录 os 1. os.getcwd() 2. os.chdir() 3. os.listdir() 4. os.makedir() 5. os.system() 6. os.getenv() 7. ...

  6. [Python3] 028 常用模块 datetime

    目录 datetime 1. datetime.date 2. datetime.time 3. datetime.datetime 4. datetime.timedelta 补充 datetime ...

  7. [Python3] 027 常用模块 time

    目录 time 1. 时间戳 2. UTC 时间 3. 夏令时 4. 时间元组 5. 举例 5.1 例子1 例子2 例子3 例子4 例子5 例子6 例子7 time 1. 时间戳 一个时间表示,根据不 ...

  8. [Python3] 026 常用模块 calendar

    目录 calendar 1. calendar.calendar(year, w, l, c, m) 2. calendar.prcal(year, w, l, c, m) 3. calendar.m ...

  9. python3 常用模块详解

    这里是python3的一些常用模块的用法详解,大家可以在这里找到它们. Python3 循环语句 python中模块sys与os的一些常用方法 Python3字符串 详解 Python3之时间模块详述 ...

随机推荐

  1. Python 面向对象Ⅳ

    类的继承 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制. 通过继承创建的新类称为子类或派生类,被继承的类称为基类.父类或超类. 继承语法 在python中继承中的 ...

  2. k8s配置文件模板

    一,deployment Deployment为Pod和Replica Set下一代Replication Controller)提供声明式更新 1,配置示例 apiVersion: apps/v1 ...

  3. EasyUI DataGrid undefined处理

    处理undefined var val = null; console.log(val); console.log(val || ""); val = undefined; con ...

  4. CF1043F Make It One 容斥+dp+组合

    考试的时候考的一道题,感觉挺神的. 我们发现将所有数去重后最多只会选不到 $7$ 后 $gcd$ 就会变成 $1$. 令 $f[i][k]$ 表示选 $i$ 个数后 $gcd$ 为 $k$ 的方案数. ...

  5. pycharm安装与永久激活

    1.Pycham下载 https://www.jetbrains.com/pycharm/download/#section=windows 直接下载专业版 2.安装 这里就不必细说,直接next就O ...

  6. Redis数据结构常用命令

    Redis数据结构--字符串

  7. MyBatis中的JdbcType映射介绍

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.                                               本 ...

  8. redis-sentinel 主从复制高可用

    Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端 ...

  9. 查准率(precision)和召回率(recall)

    1.定义 查准率(precision):预测患有癌症且预测正确的人数 / 预测有多少人患有癌症 召回率(recall):预测患有癌症且预测正确的人数 / 实际有多少人患有癌症 2.关系 他俩的关系如下 ...

  10. RF Setup和Teardown的使用

    执行顺序 setup执行顺序是:project级别setup>suite级别setup>case级别setup 无返回值 Run Keywords | [KW1 | arg1 | arg2 ...