[Python-Dev] C API for gc.enable() and gc.disable() (original) (raw)
"Martin v. Löwis" martin at v.loewis.de
Sat Jun 21 17:20:07 CEST 2008
- Previous message: [Python-Dev] C API for gc.enable() and gc.disable()
- Next message: [Python-Dev] C API for gc.enable() and gc.disable()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Well, they could hang themselves or switch to another language (which some people might view as equivalent :-)), but perhaps optimistically the various propositions that were sketched out in this thread (by Adam Olsen and Greg Ewing) could bring an improvement. I don't know how realistic they are, perhaps an expert would have an answer.
In general, any solution of the "do GC less often" needs to deal with cases where lots of garbage gets produced in a short amount of time (e.g. in a tight loop), and which run out of memory when GC is done less often.
Given the choice of "run slower" and "run out of memory", Python should always prefer the former.
One approach could be to measure how successful a GC run was: if GC finds that more-and-more objects get allocated and very few (or none) are garbage, it might conclude that this is an allocation spike, and back off. The tricky question is how to find out that the spike is over.
Regards, Martin
- Previous message: [Python-Dev] C API for gc.enable() and gc.disable()
- Next message: [Python-Dev] C API for gc.enable() and gc.disable()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]