From: ts Date: 2001-06-10T00:13:36+09:00 Subject: [ruby-talk:16361] Re: Garbage Collection? >>>>> "M" == Michael Davis writes: M> I have narrowed the issue down a little further. It appears to be related M> to Marshal.dump() and/or the << method, the += method does not eat memory. pigeon% cat b.rb #!/usr/bin/ruby def test_str_cat(count) a = '' 0.upto(count) do |i| system("ps aux | grep b.rb | grep -v grep") if i % 10 == 1 0.upto(99999) do |i| a << 'aaaa' end a = '' GC.start end end system("ps aux | head -1") test_str_cat(200) system("ps aux | grep b.rb | grep -v grep") pigeon% pigeon% b.rb USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND ts 25282 50.0 0.5 2476 1308 pts/0 S 17:08 0:00 ruby ./b.rb ts 25282 99.9 0.5 2476 1308 pts/0 S 17:08 0:05 ruby ./b.rb ts 25282 99.9 0.5 2476 1308 pts/0 S 17:08 0:10 ruby ./b.rb ts 25282 99.9 0.5 2476 1308 pts/0 S 17:08 0:15 ruby ./b.rb ts 25282 99.5 0.5 2476 1308 pts/0 S 17:08 0:19 ruby ./b.rb ts 25282 99.0 0.5 2476 1308 pts/0 S 17:08 0:24 ruby ./b.rb ts 25282 98.7 0.5 2476 1308 pts/0 S 17:08 0:29 ruby ./b.rb ts 25282 98.4 0.5 2476 1308 pts/0 S 17:08 0:34 ruby ./b.rb ts 25282 98.3 0.5 2476 1308 pts/0 S 17:08 0:39 ruby ./b.rb ts 25282 98.1 0.5 2476 1308 pts/0 S 17:08 0:44 ruby ./b.rb ts 25282 98.0 0.5 2476 1308 pts/0 S 17:08 0:49 ruby ./b.rb ts 25282 97.9 0.5 2476 1308 pts/0 S 17:08 0:53 ruby ./b.rb ts 25282 97.8 0.5 2476 1308 pts/0 S 17:08 0:58 ruby ./b.rb ts 25282 97.8 0.5 2476 1308 pts/0 S 17:08 1:03 ruby ./b.rb ts 25282 97.7 0.5 2476 1308 pts/0 S 17:08 1:08 ruby ./b.rb ts 25282 97.7 0.5 2476 1308 pts/0 S 17:08 1:13 ruby ./b.rb ts 25282 97.6 0.5 2476 1308 pts/0 S 17:08 1:18 ruby ./b.rb ts 25282 97.6 0.5 2476 1308 pts/0 S 17:08 1:22 ruby ./b.rb ts 25282 97.5 0.5 2476 1308 pts/0 S 17:08 1:27 ruby ./b.rb ts 25282 97.5 0.5 2476 1308 pts/0 S 17:08 1:32 ruby ./b.rb ts 25282 97.5 0.5 2476 1308 pts/0 S 17:08 1:37 ruby ./b.rb pigeon% M> I wonder if it could be an issue with realloc not interacting properly M> with garbage collection. Any suggestions? What is your OS ? Guy Decoux