ガーベジコレクションとは?がーべじこれくしょん
ガーベジコレクションとは、ヒープ上のどこからも参照されなくなった領域を、処理系が実行時に自動で検出して回収し、再び割当てに使えるようにする仕組み。解放の書き忘れによるメモリリークや、解放済み領域を指すポインタの誤用を防げる一方、回収が走る時刻と所要時間をプログラム側から読みにくい。
最終更新:2026-10-06
この語が出る過去問を解く →背景
手動で確保と解放を対にする方式は、経路が分岐するほど対応が崩れ、リークと二重解放という追いにくい不具合を生む。到達可能性という機械的に判定できる基準で不要領域を決めれば、この誤りの階級ごと消せる。代償として、回収のために処理を止める時間が入り込む点が、応答時間を保証したい系で問題になる。
具体例
参照カウント方式は参照数が0になった時点で即座に回収でき停止時間は短いが、循環参照を回収できない。マークアンドスイープは循環も回収できるが走査中に停止する。世代別GCは新しい領域ほど死にやすいという傾向を使って走査範囲を絞る。
試験での引っ掛け
実時間性との相性が論点。回収のための停止(Stop the World)が入る処理系では最悪応答時間を保証できないため、ハードリアルタイム処理には採りにくい。「メモリリークが起きない」も言い過ぎで、参照が残ったままのオブジェクトは回収されず、論理的なリークは普通に起きる。
関連用語
出た過去問
出典:令和4年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8(IPA)
プログラム実行時の主記憶管理に関する記述として、適切なものはどれか。
正解:プログラムが使用しなくなったヒープ領域を回収して再度使用可能にすることを、ガーベジコレクションという。
要点:不要になったヒープを自動回収するのがガーベジコレクション
ガーベジコレクションは、ヒープ上に確保されたが既に参照されなくなった領域を実行時に自動的に検出して回収し、再利用可能にする仕組みである。プログラマによる明示的な解放漏れに起因するメモリリークを防げる一方、回収処理が不定期に走るため実時間性が要求される組込みシステムでは応答時間への影響に注意が必要である。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。