In article <993548474.599948.13674.nullmailer / ev.netlab.zetabits.com>,
  matz / zetabits.com (Yukihiro Matsumoto) writes:

> というわけで添付のようなパッチを作ってみました。田中さんの基
> 本的なアイディアの通り倍々で増やしていきますが、mallocに失敗
> した時点でヒープの増加サイズを初期値に戻してやり直しています。

試してみました。期待通り、Array の伸長一回あたりの時間が平均して定数時
間で処理されており、datasize を適当に limit して試すとパッチを当ててい
ない場合とおなじところまで処理が進みます。

あと、そういえばどこかで同じような話を読んだことがある、ということを思
い出して探してみました。

Ruby スクリプト最適化のオニ
http://www9.xdsl.ne.jp/~aamine/ja/ruby/optimize.html

| 大量にオブジェクトが生成されていて、そのほとんどは使われているのがわかっている
| ときは GC を止めてしまう。仕事が終わったら明示的に開始する。効くときは秒単位で
| 効く。

ruby-talk の話もありますし、ひっかかる人はそれなりにいる、ということな
んでしょう。たぶん。
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)