python中几代gc的含义是什么?

时间:2015-06-24 08:54:10

标签: python garbage-collection

我是python的新手,还在学习。目前我正在使用gc模块(垃圾收集器)。有一点我不清楚:generation是什么意思?我知道其中有3个,但背后的概念是什么?

1 个答案:

答案 0 :(得分:1)

希望它有所帮助......

(严重)翻译自french wikipedia

每个数据都没有相同的生命周期。其中一些必须在创建后短时间内进行清理,在执行程序时需要进行其他预先清理(全局变量等)。 一个解决方案是要求程序标记"标记"这些数据根据其可能的寿命而定。但这将是一个非常重要的解决方案,数据是由图书馆创建的并不罕见。函数,我们需要提供它们的生命周期作为参数。

发电系统的侵入性极低。垃圾收集器创建了从最年轻到最旧的几代的层次结构。新创建的数据通常位于最年轻的一代中。在这一代年轻人中经常收集垃圾。在这一代中未被收集和销毁的数据然后被移动到较旧的数据等等。这个想法是寿命较短的数据不会到达老一代(如果它们刚被分配时分配它们就可以了。当他们被GC发现但很少见。)

通常,有2或3个新月代,并且每一代都使用不同的算法,通常对于最年轻的一代有一种非增量算法,因为它的重量轻,垃圾收集时间短。 使用增量算法收集较旧的代。

调整一代垃圾收集器可能很困难。由于最年轻一代的规模严重影响了计算。最佳选择取决于应用程序,CPU类型和内存架构