Interesting. I also did an implementation of a fixed heap size (with a 
sorted set of heaps, as you did), but without the tuning of GC frequency 
you did. I had the same kind of results: almost no performance hit, mean 
heap size reduced.

You can find my implementation in the "gc_fixed_heaps" branch of

  http://www.laas.fr/~sjoyeux/ruby-1.8.6-git

-- 
Sylvain Joyeux