相关疑难解决方法(0)

Python垃圾收集器文档

我正在寻找详细描述python垃圾收集如何工作的文档.

我很感兴趣在哪一步做了什么.这三个系列中有哪些对象?每个步骤中删除了哪些对象?什么算法用于参考循环发现?

背景:我正在实施一些必须在很短的时间内完成的搜索.当垃圾收集器开始收集最老的一代时,它比其他情况"慢得多".花了比搜索更多的时间.我正在寻找如何预测它将收集最老一代的时间以及需要多长时间.

这是很容易预测它什么时候会收集最古老的一代与get_count()get_threshold().这也可以用set_threshold().但是,我不认为collect()通过武力或等待预定的收集更好地决定是否更好.

python garbage-collection

130
推荐指数
1
解决办法
8万
查看次数

Python垃圾收集

我创建了一些python代码,它在循环中创建一个对象,并在每次迭代中用相同类型的新对象覆盖该对象.这样做了10.000次,Python每秒占用7mb的内存,直到我使用3gb的RAM.有没有人知道从内存中删除对象的方法?

python optimization garbage-collection memory-management

38
推荐指数
4
解决办法
4万
查看次数

python会自动垃圾收集双链表吗?

背景

我有一个树形结构.在这个树结构中,我将节点的孩子保持为双向链表:

在此输入图像描述
(来源:双链表)

(由于创建此列表的广度优先搜索方法,我选择了此结构.)

问题

现在我担心的是垃圾收集器是否可以自动销毁此列表.当然,我只保留对这三者的根节点的引用.Afaik GC的原理是它收集内存中的数据结构,其中没有指向任何引用.但是在双向链表中,每个节点都是从它的兄弟节点引用的,兄弟节点引用节点.因此总是会引用一个节点,GC永远不会收集它.

垃圾收集器会处理双向链表吗?

如果没有,最简单的收集方式是什么?

相关问题:

为什么Lua使用垃圾收集器而不是引用计数?
Python:修改列表时的内存使用和优化

python garbage-collection doubly-linked-list

3
推荐指数
1
解决办法
676
查看次数