如果我执行这个代码:
def test():
k = 0
t = time.time()
times = []
for i in range(500):
for j in range(500):
k+=1
t1 = time.time()-t
t2 = time.time()-t
times.append(t2-t1)
return times
绘制延迟,我得到this。似乎每隔10毫秒就会有延迟。我在运行另一个程序时注意到了这一点,其中这些尖峰占据了大部分执行时间
那么,是什么导致了这些延误呢?删除time函数确实会减少执行时间,但在其他较慢的函数中,它对执行时间的影响不足以导致峰值
这是另一个函数,相同的尖峰出现,但更加规则
def search(img, pos, rad):
t = time.time()
times = []
pos_tot = np.array([0,0]).astype(float)
lum_tot = 0
k = 1
for i in range(max(pos[0]-rad, 0), min(pos[0]+rad+1, img.shape[0])):
for j in range(max(pos[1]-rad, 0), min(pos[1]+rad+1, img.shape[1])):
t1 = time.time()
k+=1
lum = int(((img[i][j][0] + img[i][j][0] + img[i][j][0])/3/30)**3)
pos_tot+= np.array([i,j]).astype(float)*lum
t2 = time.time()-t
times.append(t2-t1)
return times
时间看起来像this,大约每71次迭代出现一次
这是否与操作系统相关(Windows 10)?如果是的话,我怎样才能避免这些延误呢? 感谢您的帮助
目前没有回答
相关问题 更多 >
编程相关推荐