ガーベジコレクタ(がーべじこれくたー)
最終更新:2026/4/27
ガーベジコレクタは、プログラムが使用中でなくなったメモリ領域を自動的に検出し、解放する機能である。
別名・同義語 GC自動メモリ管理
ポイント
ガーベジコレクションは、プログラマが手動でメモリ管理を行う必要性を減らし、メモリリークなどのエラーを防ぐのに役立つ。
概要
ガーベジコレクタ(Garbage Collector, GC)は、コンピュータプログラミングにおける自動メモリ管理の機能の一つです。プログラムの実行中に動的に割り当てられたメモリ領域のうち、プログラムから参照されなくなったものを「ガベージ(不要なデータ)」とみなし、それを自動的に検出し、解放することで、メモリの再利用を可能にします。
動作原理
ガーベジコレクタの基本的な動作原理は、以下の通りです。
- 到達可能性の判定: プログラムの実行中に、どのメモリ領域がプログラムから直接的または間接的に参照されているかを判定します。参照されているメモリ領域は「到達可能」とみなされます。
- ガベージの特定: 到達可能性の判定の結果、参照されていないメモリ領域を「ガベージ」と特定します。
- メモリの解放: 特定されたガベージを解放し、メモリプールに戻します。これにより、他のプログラムや同じプログラムの別の部分でメモリを再利用できるようになります。
ガーベジコレクションの種類
ガーベジコレクションには、様々なアルゴリズムが存在します。代表的なものとして、以下のものが挙げられます。
- マーク・アンド・スイープ: 到達可能なオブジェクトにマークを付け、マークされていないオブジェクトをガベージとして解放します。
- コピー・コレクト: メモリ領域を2つに分割し、到達可能なオブジェクトを一方の領域にコピーすることで、ガベージを解放します。
- 世代別ガーベジコレクション: オブジェクトの生存期間に基づいてメモリ領域を世代に分け、若い世代のガベージをより頻繁に回収します。
メリットとデメリット
ガーベジコレクションのメリットは、プログラマが手動でメモリ管理を行う必要性を減らし、メモリリークなどのエラーを防ぐことができる点です。一方、デメリットとしては、ガーベジコレクションの実行時にプログラムの処理が一時的に中断される可能性がある点や、ガーベジコレクションのアルゴリズムによっては、パフォーマンスに影響を与える可能性がある点が挙げられます。
関連項目
- メモリ管理
- メモリリーク
- 参照カウンタ