Booker C.Bense wrote: > _ This is generally true of all unix processes. They do not > return allocated memory back to the system until they exit. > Freeing memory inside the code merely allows you to use it > again, it does not make it available to the system. I thought they did return freed memory. Am I misreading the following? irb(main):003:0> puts `ps` PID TTY TIME CMD 7791 pts/7 00:00:00 zsh 13495 pts/7 00:00:00 irb 13501 pts/7 00:00:00 ps => nil irb(main):004:0> puts `ps -Ovsz` PID VSZ S TTY TIME COMMAND 7791 6068 S pts/7 00:00:00 /bin/zsh 13495 8404 S pts/7 00:00:00 irb 13502 3664 R pts/7 00:00:00 ps -Ovsz => nil irb(main):005:0> puts `ps -Ovsz,rss` PID VSZ RSS S TTY TIME COMMAND 7791 6068 2736 S pts/7 00:00:00 /bin/zsh 13495 8404 5100 S pts/7 00:00:00 irb 13503 3668 888 R pts/7 00:00:00 ps -Ovsz,rss => nil irb(main):006:0> def usemem(sz); @x = Array.new(sz); nil; end => nil irb(main):007:0> usemem 10_000_000 => nil irb(main):008:0> puts `ps -Ovsz,rss` PID VSZ RSS S TTY TIME COMMAND 7791 6068 2736 S pts/7 00:00:00 /bin/zsh 13495 47468 44192 S pts/7 00:00:00 irb 13504 3668 892 R pts/7 00:00:00 ps -Ovsz,rss => nil irb(main):009:0> usemem 10_000 => nil irb(main):010:0> puts `ps -Ovsz,rss` PID VSZ RSS S TTY TIME COMMAND 7791 6068 2736 S pts/7 00:00:00 /bin/zsh 13495 47468 44232 S pts/7 00:00:00 irb 13505 3664 884 R pts/7 00:00:00 ps -Ovsz,rss => nil irb(main):011:0> GC.start => nil irb(main):012:0> puts `ps -Ovsz,rss` PID VSZ RSS S TTY TIME COMMAND 7791 6068 2736 S pts/7 00:00:00 /bin/zsh 13495 8404 5168 S pts/7 00:00:00 irb 13506 3664 888 R pts/7 00:00:00 ps -Ovsz,rss => nil -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407