脚本的 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 中的 time
和 timeit
方法后,我找不到任何可以让我从 IPython 控制台调用的方法,时间我的脚本(不是函数)多次,return 平均值或中位数。
有没有简单的方法来做到这一点?或者至少执行 1 次,这样我就可以制作自己的循环和平均值?
谢谢
您可能想看看这个 link 并考虑 IPython
中的 %timeit
魔法
示例:
假设您定义了一个要测试的函数:
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 次并将结果存储在同一个列表中.然后,您可以取该列表的中位数的平均值。
在 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 中的 time
和 timeit
方法后,我找不到任何可以让我从 IPython 控制台调用的方法,时间我的脚本(不是函数)多次,return 平均值或中位数。
有没有简单的方法来做到这一点?或者至少执行 1 次,这样我就可以制作自己的循环和平均值? 谢谢
您可能想看看这个 link 并考虑 IPython
中的%timeit
魔法
示例:
假设您定义了一个要测试的函数:
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 次并将结果存储在同一个列表中.然后,您可以取该列表的中位数的平均值。