[Python-Dev] recursive closures - reference leak (original) (raw)

Maciej Fijalkowski fijall at gmail.com
Tue Dec 8 15:58:13 CET 2009


Ah, yes.  In my particular case, I'm running a cluster of hundreds of nodes, supporting 50.000 players in a real-time space simulation.  We disable GC because of its unpredictable performance impact and are careful to avoid reference cycles.  We use gc from time to time to find those cases that our programmers have missed, and fix them.  This is how I stumbled upon this particular reference cycle that even a high level programmer would not have expected to have created.  This is, IMHO the best use you can make of "gc":  Help you code well, not let you cope with sloppy code :) K

Then it is a bit your fault. There is nothing particularly wrong with creating reference cycles (ie you can't avoid having a gc running in Java or Jython or anything else basically). Note that disabling gc does not mean that you will not have unpredictable pauses. Consider for example that if you loose a reference to a very long chain of objects, you can have arbitrarily many frees being called before anything else can happen.

Cheers, fijal



More information about the Python-Dev mailing list