David Brown wrote:
The thing is, _all_ memory managers used on linux, including malloc, request memory from the OS in much larger chunks than the user requests. Syscalls are more expensive than manipulating a few pointers, so it's better to reduce the number of syscalls.
That is true. However, if memory allocation efficiency matters, you request a big hunk once and do it yourself.
IIRC, Firefox is changing over to doing that along with garbage collecting their own objects.
Most lisp systems request enormous amounts of memory from the system, but only make use of the memory that they need. It's kind of annoying because the virtual memory used isn't meaningful. Clozure Common Lisp requests 512GB, and SBCL requests 8GB. But, configuring the OS to force these allocations to get real memory would prevent either from running.
*blink* Okay, that's just *broken*. Way broken. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=474402
This is no new behaviour of SBCL, and rather a implementation limitation than a bug. SBCL needs to reserve a fixed contiguous address space for its GC-managed memory.
And known broken. Bad GC implementation. -a -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list
