Rubyでの大容量のファイルの扱い方に悩む

Rubyで寿命が長いプロセスでWavファイルをメモリに
全部読み込んでいじろうと思ってたんですけど
Rubyは保守的GCを採用しているので未使用になっても
GCによって開放されない場合があるということみたい。


GCアルゴリズム詳細解説
http://wiki.livedoor.jp/author_nari/d/GC


オブジェクトが使うメモリが数バイトだと問題になりにくいけど
数メガとかの容量のオブジェクトだと問題の影響が大きいっぽいなー


代替案は

  • Tempファイルに保存する
    • ファイルキャッシュが効けばメモリアクセスと変わらなく速い?
  • Rubyの標準ライブラリのtempfileオブジェクトを使う
    • まだ中身を見ていないので利点・欠点がわからないです
  • RubyGCがexact GCとなるようにお祈りする。
    • ...