Python:for循环随机延迟10毫秒

时间:2019-02-10 20:19:52

标签: python for-loop time

如果我执行以下代码:

 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)?如果是,我如何避免这些延误? 任何帮助表示赞赏。

0 个答案:

没有答案