[Vm-dev] Memory leaks

Mariano Martinez Peck marianopeck at gmail.com
Thu Dec 31 20:56:18 UTC 2015


Did you try a SpaceTally to know at least,  instances of which class are
the ones taking most of the space?

On Thu, Dec 31, 2015 at 5:29 PM, Phil (list) <pbpublist at gmail.com> wrote:

>
> On Thu, 2015-12-31 at 08:14 -0800, KenD wrote:
> >
> > On Thu, 31 Dec 2015 03:36:46 -0500
> > "Phil (list)" <pbpublist at gmail.com> wrote:
> >
> > > I was curious if the VM has any facilities to assist in tracking
> > > down
> > > memory leaks? (not in the VM itself, but rather in the image it is
> > > running)  The scenario that comes to mind are object reference
> > > loops
> > > though there are likely others to consider as well.  Any pointers
> > > are
> > > appreciated.
> >
> > Hi Phil,
> >
> > It depends on what, specifically, you are doing.
> >
> > There are tools in Caregory Tools-ReferenceFinder which I suspect
> > would be of help.
> >
>
> I've been using reference finder and weight explorer to do some
> preliminary investigation but given the current size of this image
> (250M) it's slow going with each search taking upwards of a minute and
> running into OOM problems.  But if that's all there is, I'll keep going
> down this path.
>
> > In the limit, any deep memory bug is probably investigated in a VM
> > simulator.  This type of bug in a released image is rare.  Typical
> > images do not load the object-memory/vm simulator, but you can build
> > a VMMaker image which has the code.
> >
>
> At this stage I'm expecting to find that it's my code doing the leaking
> into the image, and not a base image or VM bug.  My original thought
> was that I had some orphaned reference loops floating around but ran
> across a post that indicated that unrooted reference loops should not
> be a problem for the VM to gc.  I've done all of the obvious things I
> could think of to minimize rooted references including closing
> workspaces, browsers, inspectors, terminated Smalltalk processes etc.
>  Any ideas as to what other possible ways these objects could be
> rooted?
>
> > Note that this is for people with deep knowledge.  You have to
> > understand how objects are represented in memory, Cog (JIT) vs non-
> > Cog, Spur vs non-Spur,  StackInterpreter vs optimized, ...
> >
>
> Hoping not to need to dive this deeply just yet.  (esp. for what
> appears to be a user-space problem)
>
> > Two article blogs discuss the deeper currents within the VM:
> >  http://www.mirandabanda.org/cogblog/
> >  https://clementbera.wordpress.com/author/clementbera/
> >
> > Note that because of the Squeak/Pharo/Cuis community, you can safely
> > ignore the VM and play happily in Smalltalk, so don't feel you have
> > to dive into this level of operations unless you have the calling for
> > it (i.e. you are walking alone and something reaches out from the
> > earth, grabs your ankle, and down you go.  Hey, it happens!).
> >
>
> I didn't start down this path out of curiosity ;-)  You can only ignore
> it when it doesn't result in your image growing by an order of
> magnitude larger than it should be and beginning to experience
> performance issues as a result.  I could start from a new base image
> but as this is code I want to productionize at some point, I'd expect
> that whatever is going on right now will be a problem down the road so
> I'd rather deal with it sooner rather than later.
>
> > Cheers,
> > -KenD
>
> Phil
>



-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20151231/30a7729d/attachment-0001.htm


More information about the Vm-dev mailing list