大原です。

From: matz / zetabits.com (Yukihiro Matsumoto)
Subject: [ruby-list:28717] Re: GC
Message-ID: <984469524.822537.1021.nullmailer / ev.netlab.zetabits.com>
Date: Tue, 13 Mar 2001 16:45:25 +0900

> |#!/usr/local/bin/ruby
> |str = 'a' * 1024 * 1024
> |#puts 'str!'
> |str = nil
> |GC.start
> |sleep 60
> |
> |こんなスクリプトで、puts の行のコメントを外すと、
> |GC.start が効いてくれなくなってしまうようなのですが、
> |こういうものなのでしょうか?
> 
> すみませんが、「こういうもの」かどうか尋ねるときには、なにが
> 起きているのかもう少し具体的にお願いします。具体的にはなにを
> もって「GC.start が効いてくれない」とされているのかとか。

BSD/OS 4.1 と FreeBSD 3.2 な環境下で、Ruby 1.6.2 で
上記スクリプトを実行しています。
実行中に top コマンドでプロセスの挙動を見ていて、
top で示されている SIZE (プロセスサイズの合計) の推移を見ていました。

puts をコメントアウトしている場合は、
sleep に実行が移った時点で SIZE が小さくなるのですが、
puts のコメントを外すと、
SIZE は大きい (コメントアウト時に比べて 1MB 程度) ままとなります。

----
OHARA Shigeki <os / iij.ad.jp>