問題 No.5239
あるオブジェクト指向言語で記述されたプログラムにおいて、処理の実行中に新たなインスタンスをヒープ領域に次々と生成したところ、利用可能な空きメモリ容量が不足し、プログラムの処理速度が著しく低下した。この状態を解消するため、システムが実行中のプログラムを一時中断し、参照されなくなった不要なオブジェクトを自動的に検出し解放する機能として、適切なものはどれか。
【正解の解説】
ガベージコレクション
これは、部屋の中で誰も使わなくなった古い段ボール箱を見つけて、自動的に片付け、再び広いスペースを作り出すお掃除ロボットのような仕組みです。プログラマが手動でゴミ捨てをしなくても、システムが勝手にメモリを整理してくれるため、メモリ不足によるプログラムの暴走を防ぐことができます。
スポンサーリンク
【その他の選択肢の解説】
デフラグメンテーション
これは、本棚のあちこちに飛び飛びで差し込まれた本を並べ替えて、一箇所にまとめるような作業を指します。メモリ上の不要なオブジェクトを消すガベージコレクションとは異なり、こちらは「散らかったファイルの配置を綺麗に並べ直す」ものなので、目的がまったく異なります。
メモリインタリーブ
これは、よく使う道具だけを自分の机の引き出しにしまっておき、わざわざ遠くの倉庫まで取りに行かなくて済むようにする小箱のようなものです。不要なオブジェクトを解放するソフトウェアの機能であるガベージコレクションとは異なり、こちらは速度差を埋めるための高速なメモリそのものを指します。
キャッシュメモリ
これは、よく使う道具だけを手元の引き出しに入れておき、遠くの倉庫まで取りに行く手間を省く小箱のようなものです。プログラム内の不要なオブジェクトを片付けるガベージコレクションとは異なり、こちらはCPUの処理を速くするための高速なハードウェアの仕組みを指します。