[Top][All Lists]
[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