ホームページ  >  記事  >  バックエンド開発  >  PHPのガベージコレクションメカニズムの理解

PHPのガベージコレクションメカニズムの理解

WBOY
WBOYオリジナル
2016-06-13 12:19:19841ブラウズ

PHP ガベージ コレクション メカニズムの理解

PHP ガベージ コレクション メカニズムについては、php5 以降でのみ実装されるものであるため、理解できるようになることを願っています。すべての生徒に役立ちます。

PHP 5.3 より前に使用されていたガベージ コレクション メカニズムは単純な「参照カウント」でした。つまり、各メモリ オブジェクトにカウンタが割り当てられ、メモリ オブジェクトが変数によって参照されると、カウンタは 1 になります。 ; 変数が参照された場合 削除後、カウンタは -1 になります; カウンタ = 0 の場合、メモリ オブジェクトは使用されておらず、メモリ オブジェクトが破棄され、ガベージ コレクションが完了したことを示します。

「参照カウント」には問題があります。つまり、2 つ以上のオブジェクトが相互に参照してリングを形成する場合、この時点ではメモリ オブジェクトのカウンタは 0 に減りません。このメモリ オブジェクトのグループはもう役に立ちませんが、リサイクルすることができないため、メモリ リークが発生します。

php5.3 以降、参照カウントに基づいた新しいガベージ コレクション メカニズムが使用されます。メモリ オブジェクト内の参照を検出してメモリ リークを回避します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。