为什么使用file.write()时脚本执行时间会随着时间增加?

时间:2019-02-13 23:43:58

标签: python

我是第一次尝试python。我在下面写了这个脚本:

# Importing modules
import time

buffersize = 10000
f = open(time.strftime("%M-%S.raw", time.gmtime()),"w")

try:
  while True:
    start = time.time()
    for x in xrange(0,buffersize):
      blah = " "
    elapsed = time.time() - start
    f.write(str(elapsed)+"\r\n")
except KeyboardInterrupt:
  f.close()

在运行该脚本后检查原始文件时,我注意到elapsed变量随着脚本的运行而增加。这是一个值序列示例:

4.79221343994e-05
0.916402101517
0.980934858322
1.05616092682
1.15645098686
1.30846095085
1.54870700836
1.87860512733
2.74350309372
4.1800429821
4.71334385872
5.24211788177
5.8994808197

我希望脚本只生成一个反映几百毫秒,给定或花费100毫秒的值列表,而不是一个升序的值列表。

这是因为文件对象正在将数据存储在内存中,从而随着时间的推移降低了脚本的速度吗?我应该以某种方式刷新内存以减少执行时间?还是我误会了什么?

注意: 我尝试计时for循环的原因是因为在我的另一个脚本中,我实际上将行blah = " "替换为尝试执行的某些代码 从树莓派上从我的MCP3008芯片中获取值。升值列表不是我期望的。因此,我开始将代码缩减为上面看到的内容,以了解发生了什么。

0 个答案:

没有答案