On 8/28/06, khaines / enigo.com <khaines / enigo.com> wrote: > 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 > > Wow...that seems to be a pretty major leak to have made it this long w/o being noticed. Maybe that type of behavior isn't repeated often enough in most programs to expose the leak? - rob -- http://www.robsanheim.com http://www.seekingalpha.com http://www.ajaxian.com