I just read the Ruby GC thread about the performance bug and sample
program and all (from 2 weeks ago)

The solution, without rewriting the GC, is to invoke it less often, i.e.
proportionally to the inverse of the amount of time it takes to do its
job. That way the % of time taken by GC remains constant.

Depending on how Ruby's allocator works, it might (or might not) be a good
idea to increase the process size by geometric bumps instead of linear
bumps: instead of allocating, say, 32k more, it would be, e.g. 5% more. 

disclaimer: I am not a ruby internals hacker.

matju