【问题标题】:Deleting from memory in tree structure objects in python3从python3中树结构对象的内存中删除
【发布时间】:2019-09-14 16:21:53
【问题描述】:

我在 python3 中有一个树类,每个树对象都有一个对其父对象的引用和一个对其子对象的引用列表。

在 main 方法中有一个对树根的引用。我试图通过说 root.children = [] 来取消对根的子节点的引用,但 RAM 使用率似乎并没有下降。 如何从内存中清除整个树或部分部分?对于那些想知道这很重要的人,因为树非常大并且 RAM 使用率变得太高。

p.s.:我认为导致内存未被清除的原因是,在我从根中删除子节点后,深度 2 节点引用深度 3 节点,反之亦然,依此类推。

【问题讨论】:

  • 您可以按照 rohit 的说明在技术上强制 GC,但我强烈怀疑这是“正确”的解决方案。几乎可以肯定,有一个不滥用 GC 的更好解决方案,但是如果没有 minimal reproducible example 说明问题并显示您要完成的工作,就无法判断可能是什么。

标签: python python-3.x memory tree


【解决方案1】:

您可以先尝试在子节点上使用del,然后使用gc.collect() 强制垃圾收集器释放未引用的内存。

【讨论】:

    猜你喜欢
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多