On 32-bit Windows the GC arena allocation code (jsgc.cpp) uses VirtualAlloc to allocate 16 KiB buffers. However, VirtualAlloc has a 64K allocation granularity http://blogs.msdn.com/oldnewthing/archive/2003/10/08/55239.aspx so you can only use 1/4 of your available address space for GC arenas. I propose changing the "4" to "16" on line 1283 in jsgc.cpp: http://mxr.mozilla.org/mozilla-central/source/js/src/jsgc.cpp#1283
Bug 508707 is the real fix, but this would be a good spot-fix for the 1.9 branch branch. /be
We have 64K (16 << 12) now. Igor, Gregor: is this bug fixed? /be
Arenas no longer allocate, so this is certainly fixed. Currently, the only allocation the GC makes is chunks -- 1MiB at a time on 1MiB aligned addresses.