有没有办法使用timeit函数同时输出函数结果和处理时间?
现在我正在使用
timer = Timer('func()', 'from __main__ import func')
print timer.timeit(1)
但这只是输出时间而不是程序输出,它会在结束时返回一些内容。我希望它输出
FuncOutputGoesHere 13.2897528935
在同一条线上。
理想情况下,我希望能够通过运行N次来获取程序的平均值,然后输出程序结果及其平均时间(总共一个输出)
有没有办法使用timeit函数同时输出函数结果和处理时间?
现在我正在使用
timer = Timer('func()', 'from __main__ import func')
print timer.timeit(1)
但这只是输出时间而不是程序输出,它会在结束时返回一些内容。我希望它输出
FuncOutputGoesHere 13.2897528935
在同一条线上。
理想情况下,我希望能够通过运行N次来获取程序的平均值,然后输出程序结果及其平均时间(总共一个输出)
两种选择:
在您的定时代码中加入'print'。丑陋,但嘿。
timer = Timer('print func()', 'from __main__ import func')
print timer.timeit(1)
如果你所做的只是运行一次你的功能,那么就省去了 timeit
模块共同使用相同的方法直接代码:
import sys
import time
if sys.platform == "win32":
# On Windows, the best timer is time.clock()
default_timer = time.clock
else:
# On most other platforms the best timer is time.time()
default_timer = time.time
t0 = default_timer()
output = func()
t1 = default_timer()
print output, t1 - t0
如果要多次运行代码并生成输出,为什么不运行一次代码 外 时间函数?无论如何你已经多次调用它了:
timer = Timer('func()', 'from __main__ import func')
print timer.timeit(100),
print func()
timeit模块执行传递的语句。你可以打印函数的结果:
timer = Timer('print func()', 'from __main__ import func')
print timer.timeit(1)