在Mac OS终端中运行python时内存泄漏

时间:2011-07-11 06:00:52

标签: python macos memory-leaks terminal

我刚刚在Mac OS终端中运行了一个python程序,并且存在异常的内存泄漏。

程序很简单:

for i in xrange(1000000000, 2000000000, 10):
  i2 = i * i
  print i, i2, str(i2)[::2]
  if str(i2)[::2] == '1234567890':
    break

当程序运行时,它消耗的内存越来越多,直到它耗尽所有内存。 当我终止程序时,我的Terminal.app仍然消耗大量内存,所以我猜这是Terminal.app中的一个错误?

有没有人有类似的经历?

2 个答案:

答案 0 :(得分:14)

这不是一个错误;它实际上是一个功能。与许多其他终端仿真器一样,Terminal.app将最近的输出保存在缓冲区中,以便您可以向后滚动(使用向上翻页或滚动条)。您可以通过前往终端来限制此大小 - >偏好 - >设置并将回滚限制设置为“无限制”以外的其他内容。

答案 1 :(得分:5)

Python不是泄漏内存。仔细看看。在我的机器上,Python进程保持在一个安静,稳定的3.5 MB内存中。

您看到的内存使用量增量很可能是由于终端没有丢弃输出。您可以将此行为更改为“首选项”,“设置”,并将最大行数设置为“无限制”以外的其他行。