[Python-Dev] C API for gc.enable() and gc.disable() (original) (raw)
"Martin v. Löwis" martin at v.loewis.de
Wed Jun 25 22:55:32 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 ]
It seems to me that the root problem is allocation spikes of legitimate, useful data. Perhaps then we need some sort of "test" to determine if those are legitimate. Perhaps checking every nth (with n decreasing as allocation bytes increases) object allocated during a "spike" could be useful. Then delay garbage collection until x consecutive objects are found to be garbage?
It seems like we should be attacking the root cause rather than finding some convoluted math that attempts to work for all scenarios.
I think exactly the other way 'round. The timing of thing should not matter at all, only the exact sequence of allocations and deallocations.
I trust provable maths much more than I trust ad-hoc heuristics, even if you think the math is convoluted.
On a side note, the information about not GCing on string objects is interesting? Is there a way to override this behavior?
I think you misunderstand. Python releases unused string objects just fine, and automatically. It doesn't even need GC for that.
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 ]