Make a hash:

h = {'a' => 1, 'b' => 2, 'c' => 3}

And make another out of it:

Hash[h]

Do that a lot.  Watch RAM vanish.  GC cleans up the objects out of object 
space just fine, but RAM trickles away nonetheless.

Here is a test program:

loop do
   attrs = Hash['this','that','the other','enough','stuff','for six']
   Hash[attrs]
end

I have tested it on an installation of RedHat Enterprise Linux with 1.8.1, 
1.8.2, 1.8.4, and 1.8.5 and also under 1.8.4 (one click installer) on 
WinXP Home.

I've ran it under valgrind and just straight, and have inserted code to 
run GC after each loop iteration.  The behavior is consistent.  If you 
eliminate the Hash[attrs] line, there is no leak.


Kirk Haines