ガベージコレクション 【garbage collection】 ガベージコレクタ / garbage collector / GC
概要
ガベージコレクション(garbage collection)とは、コンピュータプログラムの実行環境などが備える機能の一つで、実行中のプログラムが占有していたメモリ領域のうち不要になったものを自動的に解放し、空き領域として再利用できるようにするもの。そのような処理を実行するプログラムを「ガベージコレクタ」(garbage collector)という。従来のプログラムでは、実行時に変数や配列、オブジェクトなどのためにメモリ領域を確保した後、プログラム中でこれを解放するコードが明示的に実行されるまでは占有したままとなる。その領域が不要になった後も、開発者がメモリ解放処理を怠るといつまでも塩漬け状態となり、空き領域が逼迫する要因となっていた。
ガベージコレクションは仮想マシン(VM)などの言語処理系やライブラリの機能として提供され、実行中のプログラムの動作から不要になったと判断した領域を自動的に解放し、再確保できる空き領域に設定する。これにより、確保された領域への参照が失われ再利用不可能になってしまうメモリリークや、領域の二重解放、参照の無効化などを防止することができる。
ただし、プログラムの本来の処理を一旦中断してガベージコレクションが割り込む形となるため、応答速度などの条件がシビアなシステムではこれが問題となる場合がある。また、不要であると機械的には判断できずなかなか解放できない場合があるほか、解放処理がいつ行われるのか開発者があらかじめ予見することが難しく、解放時に何らかの処理を行いたい場合に困ることがある。
(2019.7.26更新)
関連用語
他の辞典による解説 (外部サイト)
- ウィキペディア 「ガベージコレクション」
- 日立製作所 研究紹介 用語集 「ガベージコレクション」
- MDN Web Docs 用語集 「ガベージコレクション」
- Insider's Computer Dictionary 「Garbage Collection」
- JavaA2Z 「ガベージコレクション」
- マンガで分かるプログラミング用語辞典 「ガーベジコレクタ」
- Programming Place Plus 用語集 「ガベージコレクション」
- TechTerms.com (英語) 「Garbage Collection」
- Computer Hope (英語) 「Garbage collection」
- WhatIs.com (英語) 「garbage collection」