如何测量运行代码块需要多长时间



我正试图找出如何将一些圆括号包裹在我已经编写的代码段周围,以替代多行timeit示例中的三个圆括号。

这很好:

import timeit
stmt = """
a = bunch * of
fancy = math ** operations
tada = function(a, fancy)
"""
print("seconds = ", timeit.timeit(stmt=stmt, number=1, setup="import numpy as np; import pandas as pd"))

来源:https://docs.python.org/3.10/library/timeit.html#examples

我不知道如何让这些三引号在我创建的自定义函数中发挥作用。

但我想把它简化为这样的东西:

fancy_timing_function(
a = bunch * of
fancy = math ** operations
tada = function(a, fancy)
)

其中输出是一些不错的3 minutes 21.40 seconds

感谢社区提供的任何帮助、建议或替代解决方案(也许有人已经想到了这样的事情(。提前谢谢。

您可以定义并使用上下文管理器,如下所示:

import time
from contextlib import contextmanager
@contextmanager
def Timer(*args, **kwds):
start = time.time()
r = []
try:
yield r
finally:
r.append(time.time() - start)
with Timer() as t1:
# Code to be wrapped and timed
print("x")
print("y")
print("z")
with Timer() as t2:
# More code to be wrapped and timed
print("xxxxxxxxxxx")
print('Time 1: ' + str(t1[0]))
print('Time 2: ' + str(t2[0]))

结果:

x
y
z
xxxxxxxxxxx
Time 1: 2.6702880859375e-05
Time 2: 4.291534423828125e-06

相关内容

  • 没有找到相关文章

最新更新