IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 标准库:timeit --- 测量小代码片段的执行时间 -> 正文阅读

[开发测试]标准库:timeit --- 测量小代码片段的执行时间

?Lib/timeit.py

此模块提供了一种简单的方法来计算一小段 Python 代码的耗时。

?它有?命令行接口?以及一个?可调用?方法。


Python 接口

三个便利函数和一个

timeit.timeit(stmt='pass', setup='pass', timer=<default timer>, number=1000000, globals=None)

使用给定语句、?setup?代码和?timer?函数创建一个?Timer?实例,并执行?number?次其?timeit()?方法。可选的?globals?参数指定用于执行代码的命名空间。

import timeit

def test(num, times):
    result = num ** times
    while result != 0:
        result -= 1
    # print('test over once')
    return

print(timeit.timeit('test(2,10)', setup='from __main__ import test', number=1000))
# output: 0.03185769997071475 (因电脑性能可变)

def f(x):
    return x ** 2
def g(x):
    return x ** 4
def h(x):
    return x ** 8

print(timeit.timeit('[func(42) for func in (f,g,h)]', globals=globals()))
# output: 0.9155400999588892 (因电脑性能可变)
timeit.repeat(stmt='pass', setup='pass', timer=<default timer>, repeat=5, number=1000000, globals=None)

使用给定语句、?setup?代码和?timer?函数创建一个?Timer?实例,并使用给定的?repeat?计数和?number?执行运行其?repeat()?方法。可选的?globals?参数指定用于执行代码的命名空间。

import timeit
import pprint

def test(num, times):
    result = num ** times
    while result != 0:
        result -= 1
    # print('test over once')
    return

#pprint.pprint(timeit.repeat('__main__.test(2,10)', setup='import __main__', repeat=3, number=1000))
pprint.pprint(timeit.repeat('test(2,10)', setup='from __main__ import test',repeat=3, number=1000))
# output: [0.031496500014327466, 0.030269599985331297, 0.030263799999374896] (因电脑性能可变)

def f(x):
    return x ** 2
def g(x):
    return x ** 4
def h(x):
    return x ** 8

pprint.pprint(timeit.repeat('[func(42) for func in (f,g,h)]', repeat=3,globals=globals()))
# output: [0.8898227000026964, 0.8891328999889083, 0.8846025999519043](因电脑性能可变)

timeit.default_timer()

默认的计时器,总是?time.perf_counter()?。


公共类

class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>, globals=None)

用于小代码片段的计数执行速度的类。

构造函数接受一个将计时的语句、一个用于设置的附加语句和一个定时器函数。两个语句都默认为?'pass'?;计时器函数与平台有关(请参阅模块文档字符串)。?stmt?和?setup?也可能包含多个以?;?或换行符分隔的语句,只要它们不包含多行字符串文字即可。该语句默认在 timeit 的命名空间内执行;可以通过将命名空间传递给?globals?来控制此行为。

timeit(number=1000000)

执行?number?次主要语句。这将执行一次 setup 语句,然后返回执行主语句多次所需的时间,以秒为单位测量为浮点数。参数是通过循环的次数,默认为一百万。要使用的主语句、 setup 语句和 timer 函数将传递给构造函数。

autorange(callback=None)

自动决定调用多少次?timeit()?。

repeat(repeat=5, number=1000000)

调用?timeit()?几次。

print_exc(file=None)

帮助程序从计时代码中打印回溯。

import timeit


def test(num, times):
    result = num ** times
    while result != 0:
        result -= 1
    # print('test over once')
    return


myTimer1 = timeit.Timer('test(2,10)', setup='from __main__ import test')
print(myTimer1.timeit(1000))
# output: 0.030595600022934377 (因电脑性能可变)

print(myTimer1.repeat(3, 1000))
# output: [0.030345899984240532, 0.03075980005087331, 0.030356000002939254] (因电脑性能可变)

print(myTimer1.autorange())
# output: (10000, 0.31549419998191297) (因电脑性能可变)

def f(x):
    return x ** 2


def g(x):
    return x ** 4


def h(x):
    return x ** 8

myTimer2 = timeit.Timer('[func(42) for func in (f,g,h)]', globals=globals())
print(myTimer2.timeit(1000))
# output: 0.0009309999877586961(因电脑性能可变)

print(myTimer2.repeat(3, 1000))
# output: [0.000907599984202534, 0.0009109000093303621, 0.0009160999907180667] (因电脑性能可变)

print(myTimer2.autorange())
# output: (500000, 0.4462444999953732) (因电脑性能可变)
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:47:46  更:2022-04-09 18:49:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:15:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码