macOS 终端应用内存增长,消耗大量内存(内存泄漏)?

4 投票
2 回答
2427 浏览
提问于 2025-04-16 21:14

我刚在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(设置),然后把回滚限制设置成一个不是“无限”的值。

撰写回答