John M McIntosh wrote:
Also all the unix based systems (is there any other kind)
Yes.
just fiddle with the sqGrowMemoryBy logic by moving a pointer about indicating where the end of memory is since they all allocate the entire heapsize via mmap at startup time. Since all those unix systems do lazy allocation of memory the fact you ask for 1GB but use 20MB doesn't *really*(1) matter.
The real concern is how to release memory. It's fine to use a spike of a few hundred megs if you need it temporarily but the inability to give it back to the OS really sucks. One of the results is that you can't average memory allocation across multiple images but have to assume worst-case consumption for any single instance.
Cheers, - Andreas