macOS 终端应用内存增长,消耗大量内存(内存泄漏)?
我刚在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 个回答
6
其实不是Python在占用内存。仔细看看。在我的电脑上,Python的内存使用量一直保持在大约3.5 MB,非常稳定。
你看到的内存使用量增加,很可能是因为终端没有清理输出内容。你可以通过去设置里调整这个行为,把最大行数设置成其他值,而不是“无限制”。
15
这不是一个错误,而是一个功能。Terminal.app(终端应用程序)和其他很多终端模拟器一样,会把最近的输出保存到一个缓冲区里,这样你就可以向上滚动查看之前的内容(可以用Page Up键或者滚动条)。如果你想限制这个缓冲区的大小,可以去Terminal(终端) -> Preferences(偏好设置) -> Settings(设置),然后把回滚限制设置成一个不是“无限”的值。