From: Robert Klemme Date: 2009-10-30T22:01:00+09:00 Subject: Re: Interesting GC.start 2009/10/30 Haoqi Haoqi : > irb: > name='1'*1024*1024*100;nil # 100m > name=rand > GC.start > ============= > $ ps -ef|grep irb > ax       14081 13958  0 14:57 pts/2    00:00:00 irb > > $ top 14081 > ============= > 14081 ax        20   0  114m 112m 1960 S    0 11.3   0:00.66 irb > 14081 ax        20   0 13824  11m 1960 S    0  1.2   0:00.54 irb > ------------- > when "name=rand;GC.start", 112m->11m,why? Because the large string is eligible for collection. > but "name=nil;GC.start",dont work What do you mean? If "name=nil" does not work you should probably recompile your Ruby interpreter from the sources. If you mean that you then do not observe a memory drop the reason is that although the large string is eligible for collection there is no guarantee when it will be collected. That's how automatic GC works - and is supposed to work. Cheers robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/