DXRuby 1.4.6 Reference Manual
TOPへ戻る

リソースの解放について

DXRubyのImageクラスやSoundクラスのオブジェクトはそれぞれ画像や音のデータ(リソースといいます)を保持していますので、それなりにメモリを占有します。
RubyはGC(ガベージコレクション)を持っているため、使わなくなったオブジェクトは自動的に破棄されます。しかしGCが動作するタイミングは不定であり、使わなくなったからといってすぐ画像や音のデータがメモリから消えるわけではありません。

画像や音のデータを解放するにはRubyでImageやSoundへの参照を切ってからGC.startする手もありますが、参照を切る前にdisposeメソッドを呼び出しておく方法もあります。disposeメソッドはオブジェクトが占有していたメモリを解放します。そのオブジェクトは使えなくなり、なんらかのメソッドを呼ぶと例外が発生します。
メモリを解放することによりPCのリソースが有効活用されるようになりますので、パフォーマンスが向上します。

DXRubyは各種リソースが不足して何らかの処理が失敗するとGCを起動して再チャレンジする機能が備わっていますが、GC処理が集中するのでフレーム落ちが発生する可能性があります。できるだけ明示的に解放するようにしましょう。

TOPへ戻る