标签: python algorithm list memory memory-management
我有一个Python代码,它从根节点构建一个四叉树,根据需要引入新节点。
这个四叉树需要不断重建我到目前为止所做的是,每次需要重建四叉树时,我将根节点的子节点列表重置为空列表,并从根节点开始构建树
我担心的是,前一棵树的所有节点(根节点除外)仍将存在于内存中。在程序过程中树可能重建了数万次,平均包含5000个节点,所以如果内存过载,我不会感到惊讶。
为了不超出内存限制,我不是必须以某种方式删除所有以前的节点吗?我怎么能这样做?
答案 0 :(得分:0)
使用del,如下所示:
del children
确保如果列表children未在其他任何地方引用,则将释放列表的内存。
children
你必须遍历整个树,但要删除每个节点,这很容易递归。
在how to release used memory immediately in python list?