如果我执行以下代码:
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毫秒就有一次延迟。在运行另一个程序时,这些峰值占据了大部分执行时间,我注意到了这一点。
那么,造成这些延迟的原因是什么?删除时间函数确实会减少执行时间,但是在其他速度较慢的函数中,它不会对执行时间造成足够的影响,而不会导致峰值。
这是另一个功能,其中出现相同的尖峰但更规则
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)?如果是,我如何避免这些延误? 任何帮助表示赞赏。