嗨,我试图估计运行时间为我的fft代码形式numpy。不同的输入长度N。下面是我的代码。你知道吗
import cmath
import math
from random import uniform
from numpy.fft import fft
import time
for i in range(3,10):
N = 2**i
x = [uniform(-32768,32767) for i in range(N)]
t0 = time.clock()
X = fft(x)
t1 = time.clock()
print t1-t0
这是我得到的结果,输入长度为N=3的第一行应该是最快的一行,但是无论我运行多少次,第一行总是最大的一行。我想这是计时器的问题,但我不知道确切的原因。有人能给我解释一下吗?你知道吗
输出:
4.8e-05
3e-05
1.7e-05
6e-05
3.1e-05
5.4e-05
9.6e-05
时间间隔太小,无法准确测量时钟(),因为操作系统调用中存在延迟抖动。相反,做足够的工作(每个fft循环几千次或几百万次),直到要测量的功需要几秒钟。另外,还要将每个测量重复几次并取平均值,因为可能会有其他系统开销(缓存刷新、进程切换等)影响性能。你知道吗
相关问题 更多 >
编程相关推荐