当某一世代被分配的对象与被释放的对象之差达到某一阈值的时候,就会触发 gc 对某一世代的扫描。值得注意的是当某一世代的扫描被触发的时候,比该世代年轻的世代也会被扫描?。...每一次计数器的增加,gc 模块就会检查增加后的计数是否达到阀值的数目,如果是,就会执行对应的代数的垃圾检查,然后重置计数器 例如,假设阀值是 (700,10,10):
?1....当计数器从 (699,8,0) 增加到 (700,8,0),gc 模块就会执行 gc.collect (0), 即检查 0 代对象的垃圾,并重置计数器为 (0,9,0)
?2....当计数器从 (699,9,0) 增加到 (700,9,0),gc 模块就会执行 gc.collect (1), 即检查 1、2 代对象的垃圾,并重置计数器为 (0,0,1)
?3....当计数器从 (699,9,9) 增加到 (700,9,9),gc 模块就会执行 gc.collect (2), 即检查 0、1、2 代对象的垃圾,并重置计数器为 (0,0,0)
可以通过 set_threshold