help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-smalltalk] Memory leaks - how to find them?


From: Bonzini
Subject: Re: [Help-smalltalk] Memory leaks - how to find them?
Date: Tue, 27 May 2003 17:36:05 +0200

> Hmm, so I'm having a look at recreating blox windows on image restart,
> rather than simply abandoning them.

Very kewl :-)

> It's actually working quite nicely, but my test
> image is getting slowly bigger and bigger (up to 12MB now!).

Not very kewl indeed.

> Looking into the problem, I find that:
>
>  BLOX.BWindow allInstances size
>
> reports over one hundred.

There is no primitive yet in GNU Smalltalk to find the owners of a particular 
object.
This might be the right input to add it.  But in this case the culprit is 
probably some
class variable of BWindow or of the equivalent browser object (IIRC, 
BrowserShell).

> and checked the size of the image afterwards. It goes up by 416 bytes
> each time.

I'll look into this.  It is probably not the same problem, but it is 
interesting...

But, it is also interesting to see whether the change goes into the objects or 
rather
into the OOP table.  In the latter case it is more innocuous.

> objects): some Arrays, CallinProcesses, CompiledMethods, MethodContexts,
> MethodInfos, WriteStreams and VFS.CStatStructs created, some
> BlockClosures and Strings destroyed. All in all, there's a lot more
> change than I would expect

Note that an evaluation does create CompiledMethods and MethodInfos to compile, 
an
Array to hold the literals in the method, and CallinProcesses and 
MethodContexts to
evaluate.  The notification of the system doing a snapshot is also causing more 
code to
be executed.  The BlockClosures, Strings and VFS.CStatStructs are probably 
created by
#allSubinstancesDo:.

Paolo






reply via email to

[Prev in Thread] Current Thread [Next in Thread]