本文へスキップ

ガベージコレクションとは?

がべーじこれくしょん

ガベージコレクションとは、プログラムが使わなくなったメモリ領域を自動的に解放する仕組みのことです。

ガベージコレクション(Garbage Collection、GC)とは、コンピュータプログラム実行中に動的に確保したメモリ領域のうち、もはや参照されなくなった「不要な領域(ガベージ)」を自動的に検出し、解放する機能です。

従来のC言語のようなプログラミング言語では、プログラマ自身がメモリの確保と解放を手動で管理する必要がありました。解放し忘れると「メモリリーク」と呼ばれる問題が起き、システムのメモリが枯渇する原因になります。ガベージコレクションはこの課題を解決するために考案され、Java・Python・JavaScript・Ruby・Go・C#など多くのモダンな言語に採用されています。

主なガベージコレクションの方式には次のものがあります。

  • 参照カウント方式:オブジェクトへの参照数を数え、ゼロになったら解放する
  • マーク&スイープ方式:到達可能なオブジェクトに印をつけ、それ以外を解放する
  • 世代別GC:新しいオブジェクトほど短命という仮説に基づき、世代ごとに管理する

ガベージコレクションの利点はメモリ管理の自動化によるバグ削減ですが、GC実行中にプログラムの処理が一時停止する「STW(Stop-The-World)」と呼ばれる現象が課題として知られています。近年はインクリメンタルGCや並行GCなど、停止時間を最小化する技術が発展しています。

使い方・例文

JavaやPythonで書かれたアプリケーションでは、開発者がメモリを明示的に解放しなくても、ガベージコレクションが定期的に動作して不要なオブジェクトを自動で片付けてくれます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語