[Python-Dev] Proposal: Run GC less often

Greg Ewing greg.ewing at canterbury.ac.nz
Sun Jun 22 03:16:59 CEST 2008


Martin v. Löwis wrote:

> Under my proposal, 10 middle collections must have passed,
> PLUS the number of survivor objects from the middle generation
> must exceed 10% of the number of objects in the oldest
> generation.

What happens if the program enters a phase where it's not
producing any new cyclic garbage, but is breaking references
among the old objects in such a way that cycles of them
are being left behind? Under this rule, the oldest
generation would never be scanned, so those cycles would
never be collected.

> As a consequence, garbage collection becomes less frequent
> as the number of objects on the heap grows

Wouldn't it be simpler just to base the collection frequency
directly on the total number of objects in the heap?
 From what another poster said, this seems to be what
emacs does.

-- 
Greg


More information about the Python-Dev mailing list