【发布时间】:2020-02-10 03:47:18
【问题描述】:
我已经非常努力地弄清楚为什么我的 python 使用了 8 gigs 的内存。我什至使用过gc.get_object() 并测量了每个对象的大小,其中只有一个大于 10 兆。尽管如此,所有的对象,大约有 100,000 个,加起来是 5.5 个演出。另一方面,我的电脑运行良好,程序运行速度合理。那么我使用这么多内存的事实是否值得关注?
【问题讨论】:
-
请提供您在python中运行的代码。或者,您可以强制垃圾收集器使用 gc.collect() 释放未引用的内存
-
我很想展示代码,但是它太大了,它使用了 90,000 个保存的文件。我暂时放弃了这个问题。该程序以合理的速度运行,因此我将这个问题放在我的优先级列表中。
-
我觉得这对 SO 来说不是一个好问题。它并不完全是“基于意见的”,但似乎没有真正的答案。当您无法运行您的程序,或者在不对其他程序造成太大影响或没有不当成本的情况下不可行时,您正在使用“太多”内存。话虽如此,在 16G 的机器上使用 8G 很好,因为操作系统不会因为行为不端而杀死你的程序。
-
但是有两个程序以 8GB 运行。这是因为当你 fork 一个程序时,它的运行速度会快几倍,而且你至少需要两个 fork。
-
至于“这没有真正的答案”的指控,这不是真的,因为答案是:“是的,运行这么大内存的 Mac 没问题”或“否” .