为什么对此功能的不同调用有时需要完全相同的时间?

时间:2015-07-26 13:46:22

标签: python

我在python repl中创建了一个函数(已导入' time'):

$x="";

for($i=1;$i<=$total_no_of_pages;$i++) {
  if($i==$current_page) {
     $x.= "<strong><a href='".$self."?page_no=".$i."' style='color:red;text-decoration:none'>".$i."</a></strong>&nbsp;&nbsp;";
  } 
  elseif ($i>4 && $i!=$total_no_of_pages) {
     $x.= ".";
  }
  else {
     $x.= "<a href='".$self."?page_no=".$i."'>".$i."</a>&nbsp;&nbsp;";
  }
}
echo $x;

在这台机器上(64位Windows 7,Python 2.7.x),我一遍又一遍地测试运行这个功能,反复按[向上箭头],[输入]只是为了好玩。或者查看运行持续时间。它似乎在0.08s和0.18s之间振荡。

然后发生了一些奇怪的事情:

def a():
    t = time.time()
    s = [False for x in xrange(1000000)]
    print time.time()-t

如果连续两次跑完全相同的时间,对我来说可能会有些道理。但对于两次中间跑的电话?这里发生了什么?

1 个答案:

答案 0 :(得分:4)

只需记录时间戳之前和之后的差异,就可以对系统上正在发生的其他事情敏感。时间推荐的推荐方法是使用timeit模块,该模块尽最大努力控制这些敏感度。