我刚刚在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中的一个错误?
有没有人有类似的经历?
答案 0 :(得分:14)
这不是一个错误;它实际上是一个功能。与许多其他终端仿真器一样,Terminal.app将最近的输出保存在缓冲区中,以便您可以向后滚动(使用向上翻页或滚动条)。您可以通过前往终端来限制此大小 - >偏好 - >设置并将回滚限制设置为“无限制”以外的其他内容。
答案 1 :(得分:5)
Python不是泄漏内存。仔细看看。在我的机器上,Python进程保持在一个安静,稳定的3.5 MB内存中。
您看到的内存使用量增量很可能是由于终端没有丢弃输出。您可以将此行为更改为“首选项”,“设置”,并将最大行数设置为“无限制”以外的其他行。