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

问题描述 投票:0回答:2

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

程序很简单,如下:

对于 xrange 中的 i(1000000000, 2000000000, 10):
  i2 = i * i
  打印 i, i2, str(i2)[::2]
  如果 str(i2)[::2] == '1234567890':
    休息

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

有人有类似经历吗?

python macos memory-leaks terminal
2个回答
15
投票

这不是一个错误;而是一个错误。这实际上是一个功能。 Terminal.app 与许多其他终端模拟器一样,将最近的输出保存在缓冲区中,以便您可以向后滚动(使用向上翻页或滚动条)。您可以通过转到“终端”->“首选项”->“设置”并将回滚限制设置为“无限制”以外的其他值来限制其大小。


5
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.