timeit

您所在的位置:网站首页 求平均值函数python timeit

timeit

2023-06-13 22:21| 来源: 网络整理| 查看: 265

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

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

要测量第一个语句的执行时间,请使用 timeit() 方法。 repeat() 和 autorange() 方法是方便的方法来调用 timeit() 多次。

setup 的执行时间从总体计时执行中排除。

stmt 和 setup 参数也可以使用不带参数的可调用对象。这将在一个计时器函数中嵌入对它们的调用,然后由 timeit() 执行。请注意,由于额外的函数调用,在这种情况下,计时开销会略大一些。

在 3.5 版本发生变更: 添加可选参数 globals 。

timeit(number=1000000)¶

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

备注

默认情况下, timeit() 暂时关闭 garbage collection 。这种方法的优点在于它使独立时序更具可比性。缺点是GC可能是所测量功能性能的重要组成部分。如果是这样,可以在 setup 字符串中的第一个语句重新启用GC。例如:

timeit.Timer('for i in range(10): oct(i)', 'gc.enable()').timeit() autorange(callback=None)¶

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

这是一个便利函数,它反复调用 timeit() ,以便总时间 >= 0.2 秒,返回最终(循环次数,循环所用的时间)。它调用 timeit() 的次数以序列 1, 2, 5, 10, 20, 50, ... 递增,直到所用的时间至少为0.2秒。

如果给出 callback 并且不是 None ,则在每次试验后将使用两个参数调用它: callback(number, time_taken) 。

在 3.6 版本加入.

repeat(repeat=5, number=1000000)¶

调用 timeit() 几次。

这是一个方便的函数,它反复调用 timeit() ,返回结果列表。第一个参数指定调用 timeit() 的次数。第二个参数指定 timeit() 的 number 参数。

备注

从结果向量计算并报告平均值和标准差这些是很诱人的。但是,这不是很有用。在典型情况下,最低值给出了机器运行给定代码段的速度的下限;结果向量中较高的值通常不是由Python的速度变化引起的,而是由于其他过程干扰你的计时准确性。所以结果的 min() 可能是你应该感兴趣的唯一数字。之后,你应该看看整个向量并应用常识而不是统计。

在 3.7 版本发生变更: repeat 的默认值由 3 更改为 5 。

print_exc(file=None)¶

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

典型使用:

t = Timer(...) # outside the try/except try: t.timeit(...) # or t.repeat(...) except Exception: t.print_exc()

与标准回溯相比,优势在于将显示已编译模板中的源行。可选的 file 参数指向发送回溯的位置;它默认为 sys.stderr 。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3