On Fri, Oct 19, 2012 at 11:31 AM, Chris Muller
<ma.chris.m@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.
--