【问题标题】:How Can I Empty the Used Memory With Python?如何使用 Python 清空已使用的内存?
【发布时间】:2009-08-25 21:14:19
【问题描述】:

我刚刚用 Python 编写了一个 .psf 文件,用于执行 Abaqus 包的优化算法,但经过一些分析后它停止了。你能帮我写 Python 代码来释放内存吗?

谢谢

【问题讨论】:

标签: python memory memory-management


【解决方案1】:

在 Python 中,您并没有真正明确地释放内存。您所做的是停止引用它,它会自动释放。尽管del 这样做了,但很少有人真正需要在设计良好的应用程序中使用它。

所以这真的是一个如何在 Python 中不使用这么多内存的问题。我想说的主要提示是尝试重构您的程序以使用生成器,这样您就不必一次将所有数据保存在内存中。

【讨论】:

  • 即使使用生成器,也应该可以创建不容易收集的参考循环。
  • Python 将检测大多数循环引用并垃圾收集它们。但可以肯定的是,这是可能的。
【解决方案2】:

实际上只有两个 python 选项。您可以要求garbage collector 请运行。这可能会或可能不会做任何有用的事情。或者您可以删除一个大容器。

del my_var_name

如果内存不是真正由 Python 分配的,则需要使用正在使用的任何模块的接口来释放它。

【讨论】:

  • 您需要讨论循环、引用计数和自定义__del__ 方法才能更完整。也有一些工具可以可视化和监控内存。
  • 我并不想详尽无遗,但您的评论很有用。
【解决方案3】:

通过在不需要时停止使用它,python 具有垃圾收集器。完成后将属性和变量设置为 None。

【讨论】:

  • 使用del 可能会更好,这样您就可以确定以后不会使用错误的值。
猜你喜欢
  • 2011-06-22
  • 2011-12-24
  • 1970-01-01
  • 2023-03-04
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
相关资源
最近更新 更多