memory leak problems
rpboland at gmail.com
Fri Aug 5 21:20:20 UTC 2005
My Squeak image file has been gradually expanding so that now
(after about a years work) it is at 74M. (I switched to 3.8 a couple
of weeks ago.
The version of the image does not appear to be related to my problem.)
I checked the number of instances of each class; at the end I have
posted part of the list.
The largest is Array with 389647 instances. I have nothing open or
active in my image
except the standard windows that you get with the initial image.
Of note is ParserGenerator with 43 entries. There should be none.
ParserGenerator has not had any instances created in several months.
Its instances seem to be the result of being referenced by Morphs
which have also
not been used in months and a methodContexts which are similarly old.
Thus my image appears to have a fair number of objects that are not being
garbage collected. These objects appear to be connected to either Morphs and
methodContexts. (The methodContexts appear to be from doIts and
compiles by instances
I tried looking at the pointers to the parserGenerators and then the
pointers to these
pointers etc. but just ran in circles though I did determine that
there are morphs (mostly)
and methodContexts everywhere.
Are there tools that I can use to track down who is failing to break a
link to these
Morph and methodContext objects when they are no longer in use?
In particular a tool to find a path from a global object to to a given
be useful. Any suggestions as to what useful tools would be are welcome.
My next step is to file out all my code and then file it into a new
image to free
myself of the garbage.
I assume all my code should be in a project but I am not sure how projects work.
Any documentation on projects anywhere?
All my code is in a system category called: '4Neufs' and all (I hope)
methods that I have added to System classes are in Class category '*4Neufs'.
Partial list in sorted order of counts of class instances (in a
(*'s class are mine)
157019->String (Some of these might be from a workspace with a
lot of stuff in it)
2519->*MenuSelectionVisibleMorph (There should be 0 of these)
1424->*N4IdentityHashArray (There should be 0 of these)
43->ParserGenerator (There should be 0 of these)
More information about the Squeak-dev