Python中的可用内存
问题内容:
如何在python中释放列表的部分内存?我可以通过以下方式做到这一点:
del list[0:j]
或对于单个列表节点:
del list[j]
马克:我的脚本分析了巨大的列表并创建了巨大的输出,这就是为什么我需要立即分配内存。
问题答案:
您实际上无法在Python中手动释放内存。
使用del
减少对象的引用计数。一旦该引用计数达到零,该对象将在运行垃圾收集器时被释放。
因此,您最好的办法是-对一堆对象进行gc.collect()
手动操作del
。
在这些情况下,最好的建议通常是尝试更改算法。例如,使用发电机而不是Thijs在评论中建议的列表。
另一种策略是解决硬件问题(购买更多RAM)。但这通常具有财务和技术限制。:-)