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