[squeak-dev] how/where is memory returned to the OS?

Eliot Miranda eliot.miranda at gmail.com
Fri Oct 19 19:42:00 UTC 2012


On Fri, Oct 19, 2012 at 11:31 AM, Chris Muller <ma.chris.m at gmail.com> wrote:

> >> I have an image which needed to allocate 500MB of memory for a large
> >> operation.  Now that operation is done and all objects have been
> >> reclaimed.  According to VM I am now only using 200MB.
> >>
> >>   (Smalltalk vmParameterAt: 2) max: (Smalltalk vmParameter at: 1)
> >> "221923374"
> >>
> >> However, when I look at my VM process in "top" or the System Monitor,
> >> it still says its >500MB.
> >>
> >> How does this work?
> >
> > Depends on the platform.  On Mac OS X memory is not returned. On Windows
> > memory is allocated and freed via VirtualAlloc and VirtualFree.  On Unix
> > memory is allocated and returned via mmap and munmap by default.  What OS
> > are you on?  Looks like the unix code could be ported to the Mac easily.
>
> Linux chrisT520 3.2.0-32-generic #51-Ubuntu SMP Wed Sep 26 21:33:09
> UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
>
> So, after several hours top still shows >500MB.  Will it ever go back
> down to the level reported by vm-parameters [1,2 or 3]?
>

I'm not sure.  It all depends on the useMmap variable in the linux vm.  If
it is non-zero then a cursory reading of the source says that yes, the
memory should be returned.
-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20121019/4159dc37/attachment.htm


More information about the Squeak-dev mailing list