ガーベジコレクション
Garbage collection
ゴミ集め
オブジェクト指向型の言語の場合、オブジェクトを作るのはいいが破棄するタイミングが不明瞭になりやすい。
どこかからオブジェクトへの参照がある限り、オブジェクトを破棄できないため。
オブジェクトへの参照を失った時にオブジェクトを回収する必要がある。
ルートから辿れないオブジェクトを見つけて回収するのが基本的なアイデアになる。
マークアンドスイープ方式]は、実行中にオブジェクトを変更できないために、一時的にロックがかかったようになる。
小規模では問題ないが、大規模だと致命的になる。
また、メモリ領域の断片化を防ぐため、時々使用中のメモリをまとめ直す必要が出てくる。
マークを付ける代わりに2つの領域の間で、引っ越しのように移動していく方法がある。
参照しているかどうかをカウンタで持ち、参照数が0になったときに削除する方法。
これだと、マークアンドスイープのようにガーベジコレクションの間停止する事がない。
一方、循環参照があると、参照数が0にならないためにいつまでも残り続けてしまう。
Rust ではガーベジコレクションの問題を所有権を使うことで解決している。 表記揺れが激しい。
発音的には /ˈɡɑɹbɪd͡ʒ/ になり、ガーベ(ッ)ジがおそらく一番合っている。
Keyword:ガベッジコレクション,ガベージコレクション,ガーベジコレクション,ガーベッジコレクション