ガベージコレクション(garbage collection;
GC)とは、プログラムが動的に確保した
メモリ領域のうち、不要になった領域を自動的に解放する機能である。「ガベージコレクション」を直訳すれば「ゴミ収集」となる。
なお本来の英語の発音に近い表記は「
ガーベジコレクション」あるいは「ガーベッジコレクション」であると思われるが、日本では、一般には「ガベージコレクション」または「ガーベージコレクション」と表記されることが多い。
メモリの断片化を解消する機能と併せてガベージコレクションと呼ぶ場合もあるが、厳密にはそのような機能はコンパクションと呼び、区別される。実現手法の一つである
コピーGCでは、ガベージコレクションと共にコンパクションも
行われる仕組みになっている。
また、ガベージコレクションを
行う主体はガベージコレクタと呼ばれる。ガベージコレクタは
タスクや
スレッドとして
実装される場合が多い。
なお、似たようなものにスマート
ポインタ(smart pointer)があるが、これは
ライブラリとして提供されるガベージコレクションの一種である。