I have found that the performance of current garbage collector implementation very much depends on the code size of the application. The behaviour is not linear in the code size. Sometimes adding more code will cause run GC less often, sometimes it will cause more collections, because the code's AST just fits inside the available heap. Especially for long running server applications, like RAILS, this behaviour leaves a lot to be desired. I have created a small patch that enables several GC parameters to be set using environment variables. Most importantly, the initial heap size can be specified (RUBY_HEAP_MIN_SLOTS) and GC statistics can be obtained by setting RUBY_GC_STATS to 1. By tuning the initial heap size and RUBY_GC_MALLOC_LIMIT, I have seen improvements ranging from 10 to 30%. I would really like to see something like this included in 1.8.3 or 1.9, if possible. The patch is farely trivial, and does not change any GC internals. Any comments? Cheers, Stefan Kaes