ガーベッジコレクション(garbage collection)とは、自動メモリ解放機構のこと。
「ガーベジコレクション」「ガベージコレクション」とも読む。
また、略して「ガベコレ」「GC」と表記することも。
確保したメモリが使われなくなったことを判断し、自動的に解放する。
LISP, Java, D言語, .NET系言語などに適用されている。
C言語やC++言語のfree、deleteなどを記述しなくても自動的に解放してくれるので、いつどこでメモリを解放すべきか迷うことなくソフトウェアを開発することができる。
メモリが解放される判断基準は、各言語に備わっている「到達可能性」によって決まる。
オブジェクトがどこからも参照されなくなり、今後も参照されることがないと判断されれば即座に解放される。
SSDにおいて、使われなくなった領域を解放するためにコントローラが制御する。
フラッシュメモリの仕様上、消去が大きなブロック単位でしか行えないことがGCを必要とする要因。