目次:
定義-ガベージコレクターの意味
ガベージコレクタは、自動メモリ管理を実行するソフトウェアです。 その役割は、未使用のメモリを解放し、使用中のメモリが解放されないようにすることです。 Javaや.NET言語などの一部の言語は自動ガベージコレクションを備えていますが、C / C ++などの他の言語ではプログラマがメモリを手動で管理する必要があります。
Techopediaによるガベージコレクターの説明
ガベージコレクションは、Lisp言語を使用する際の手動メモリ管理を容易にするために、Lisp作成者John McCarthyによって最初に導入されました。
ガベージコレクターが自動メモリ管理を実行するために使用する3つの主な手法は次のとおりです。
- 参照カウント-各オブジェクトへの参照は、カウンター変数を使用してカウントされます。 カウンターがゼロに達すると、オブジェクトが不要になり、リサイクルされることを示します。
- マークとスイープ-すべての到達可能なオブジェクトの再帰的な走査がすべてのデータ領域で実行され、到達可能なオブジェクトがマークされます。 その後、マークされていないオブジェクトはリサイクルされます。
- 停止してコピー-メモリヒープは2つのセクションに分割されます。オブジェクトを含むセクションと、マークされていることが判明した場合にオブジェクトが転送(コピー)される空のセクションです。 最初のセクションのマークされていないオブジェクトは、空にすることでリサイクルされます。
ポインター/オブジェクトに割り当てられたメモリブロックが解放されたら、ポインター/オブジェクトをnull値にリセットする必要があります。 それ以外の場合は、ぶら下がります。つまり、無効なメモリブロックを指します。
ガベージコレクションは、ダングリングポインターとメモリリークの問題によって引き起こされるバグとセキュリティリスクを減らすのに役立ちます。
ガベージコレクターを使用する場合の短所には、リソースとパフォーマンスに対する余分なオーバーヘッドが含まれます。 ガベージコレクターを実行すると、システムの速度が低下し、パフォーマンスが低下する場合があります。