[racket] Limit command-line Racket's memory
At Fri, 10 Jun 2011 14:51:00 -0400, Tony Garnock-Jones wrote:
> Hi Matthew, everybody,
>
> On 2011-06-09 7:35 PM, Matthew Flatt wrote:
> > Racket normally relies on memory limits imposed by the OS.
>
> After I posted my message, I thought to try ulimit. Unfortunately, it
> didn't help: I couldn't find any setting smaller than all of available
> RAM within which Racket would even get as far as it was getting with no
> limit before crashing with an out-of-memory error.
Ok. I think it will be easier to work on base memory use using 3m.
> > With 3m enabled, then custodian-based limits can also constrain
> > memory use.
>
> These look possibly-interesting, but they mightn't help much in this
> particular case: they seem more aimed at punishing excessive consumption
> of a shared resource rather than doing more with less?
A GC should be tried before actually terminating the main custodian. If
that's not what happens currently, we could make it work that way.
> > Finally, the GC can be tuned in various ways to reduce Racket's
> > footprint.
>
> Ah! Boehm or 3m?
Both, but the knobs vary, and they're all internal right now. The main
Boehm knob is the `GC_free_space_divisor' variable.