I'd like to have my VM always start up with (say) 200MB memory. I've tried:
squeak.exe -memory: 200 myImage.image
but it still shows up with 56M memory usage (in windows task manager).
Am I doing something wrong? Mis-interpreting what I see?
Thanks ... Sophie
Behalf Of itsme213 Sent: Friday, May 30, 2008 10:12 AM To: squeak-dev@lists.squeakfoundation.org Subject: [squeak-dev] How to control start-up memory on Windows XP
I'd like to have my VM always start up with (say) 200MB memory. I've tried:
squeak.exe -memory: 200 myImage.image
but it still shows up with 56M memory usage (in windows task manager).
Am I doing something wrong? Mis-interpreting what I see?
Thanks ... Sophie
That doesn't mean use 200 megs of ram, it means use no more than 200 megs of ram.
Ramon Leon http://onsmalltalk.com
Ramon Leon wrote:
Behalf Of itsme213 Sent: Friday, May 30, 2008 10:12 AM To: squeak-dev@lists.squeakfoundation.org Subject: [squeak-dev] How to control start-up memory on Windows XP
I'd like to have my VM always start up with (say) 200MB memory. I've tried:
squeak.exe -memory: 200 myImage.image
but it still shows up with 56M memory usage (in windows task manager).
Am I doing something wrong? Mis-interpreting what I see?
Thanks ... Sophie
That doesn't mean use 200 megs of ram, it means use no more than 200 megs of ram.
I vaguely remember something about not using a space after the : or maybe it was the other way around...
Karl
On May 30, 2008, at 10:52 AM, Ramon Leon wrote:
That doesn't mean use 200 megs of ram, it means use no more than 200 megs of
ram.
Ramon Leon http://onsmalltalk.com
For the curious when the VM starts up it allocates space based on the image file size plus 100,000. When it asks the VM platform specific image memory allocation routine to allocate this memory then different things happen.
For unix based VMs (OS-X) we generally use mmap() to allocate a chunk of virtual memory. Now the question is how big? That is set by some sort of startup parm which indicates how much. Before 32bit clean VMs (check your VM) if you allocated a size >= 1GB you ran the risk of having the operating system allocate that memory (for it's own reasons) above the 2 GB boundary which would promptly crash the VM.
With a 32bit clean VM this is not a problem, however historically VM might have a 512MB upper limit to avoid the situation above.
Ok since my image is 50MB what happens on unix systems? Well we allocate 512MB of virtual memory then we read in the 50MB and set the upper soft boundary to about 54MB, the 4MB being a growHeadroom memory bound that is set in the VM. There is a growHeadroom bound (4MB) and shrinkHeadroom (8MB) if space free goes below the shrinkHeadroom we allocate more by moving the bounary, if space free goes over 8MB we lower the boundary. Thus memory management is just moving a pointer. Of course if you run into the 512MB hard ceiling you run out of memory.
In some operating systems this might mean asking the operating system for more or giving back memory. I don't claim to know what Windows does....
Other interesting things here, is some versions of the squeak netscape browser plugin which run as subtasks in the browser would have a memory ceiling set by the HTML where you could specify a total amount of memory to use, or memory to use based on percent or addition to the image size. This does not apply to the current os-x browser plugin btw since it now runs as a seperate process and feeds display data to the browser.
Measuring
What the tools report are totals for everything, the image is a small part, and as you see on Windows it seems to accurately report what is happening. But on os-x a quick test shows 950MB virtual allocated, but 22.89 mb as private and 29.84 mb as real The 22.89 private shows the image usage (15 MB image), the 29.84 mb that and space for code etc. Since I"m only asking for 512MB of virtual who know why os-x thinks 950mb of virtual is what I wanted... However as a BSD system it doesn't really allocate that anywhere, it just optimistically implies I might want/ get that but that might not be allowed if I actually tried to use it.
-- = = = ======================================================================== John M. McIntosh johnmci@smalltalkconsulting.com Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com = = = ========================================================================
squeak-dev@lists.squeakfoundation.org