Question about garbage collection

Frank Millman frank at chagford.com
Tue Jan 16 07:01:48 EST 2024


On 2024-01-15 3:51 PM, Frank Millman via Python-list wrote:
> Hi all
> 
> I have read that one should not have to worry about garbage collection 
> in modern versions of Python - it 'just works'.
> 
> I don't want to rely on that. My app is a long-running server, with 
> multiple clients logging on, doing stuff, and logging off. They can 
> create many objects, some of them long-lasting. I want to be sure that 
> all objects created are gc'd when the session ends.
> 

I did not explain myself very well. Sorry about that.

My problem is that my app is quite complex, and it is easy to leave a 
reference dangling somewhere which prevents an object from being gc'd.

This can create (at least) two problems. The obvious one is a memory 
leak. The second is that I sometimes need to keep a reference from a 
transient object to a more permanent structure in my app. To save myself 
the extra step of removing all these references when the transient 
object is deleted, I make them weak references. This works, unless the 
transient object is kept alive by mistake and the weak ref is never removed.

I feel it is important to find these dangling references and fix them, 
rather than wait for problems to appear in production. The only method I 
can come up with is to use the 'delwatcher' class that I used in my toy 
program in my original post.

I am surprised that this issue does not crop up more often. Does nobody 
else have these problems?

Frank





More information about the Python-list mailing list