脚本的 Matlab timeit 等效于 Python

Matlab timeit equivalent in Python for scripts

在 Matlab 中有

"timeit(F), which measures the typical time (in seconds) required to run the function specified by the function handle F that takes no input argument."

此方法 returns 函数运行的中位数(我认为是 13 次)。

查看了 Python 中的 timetimeit 方法后,我找不到任何可以让我从 IPython 控制台调用的方法,时间我的脚本(不是函数)多次,return 平均值或中位数。

有没有简单的方法来做到这一点?或者至少执行 1 次,这样我就可以制作自己的循环和平均值? 谢谢

您可能想看看这个 link 并考虑 IPython

中的 %timeit 魔法

link


示例:

假设您定义了一个要测试的函数:

def logtest1(N):
tr=0.
for i in xrange(N):
    T= 40. + 10.*random()
    tr = tr + -log(random())/T

from timeit import Timer, timeit, repeat
runningtime = repeat("logtest1(int(10e5))", setup="from __main__ import logtest1", repeat=5, number=1)
print (runningtime)

那将 运行 我的函数 logtest1(int(10e5)) 1 次并将时间存储在列表中 runningtime 然后它会重复同样的事情 5 次并将结果存储在同一个列表中.然后,您可以取该列表的中位数的平均值。