ホームページ  >  記事  >  バックエンド開発  >  PHP のガベージ コレクション メカニズムとは何ですか?

PHP のガベージ コレクション メカニズムとは何ですか?

巴扎黑
巴扎黑オリジナル
2016-11-08 10:55:17943ブラウズ

説明: PHP は、参照カウント (ガベージ コレクション) メカニズムを使用します。各オブジェクトには、参照がオブジェクトに接続されるたびに、参照カウンターが 1 ずつ増分されます。 NULL の場合、カウンターは 1 ずつデクリメントされます。オブジェクトの参照カウンタが 0 に達すると、PHP エンジンはそのオブジェクトが不要になったことを認識し、オブジェクトが占有しているメモリ領域を解放します。

操作はポインターですか?

いいえ、& 操作はポインターではなく参照ポインターを確立します。 UNIX ファイルのソフト リンクに似ています。

Unset() 操作と null 値の割り当て操作の違いは何ですか?

(a) Unset() は、この変数の参照を元々指していたメモリから切断するだけで、変数自体を未定義の null 参照にし、シンボル テーブル内のそのメモリの参照カウントを 1 つデクリメントします。このメモリを指す他の変数に影響を与えます。したがって、この unset() 変数を呼び出すときに通知が発行されます。 (何度も設定されていない変数の場合、初回のみ再生されます。)

(b)代入NULL操作はかなり激しく、変数の内部既存シンボルテーブルの参照数を直接減らすことになるので再利用しましたが、いつ再利用されたのかは不明。他の情報を保存するためにすぐに使用される場合もあれば、二度と使用されない場合もあります。しかし、何があっても、最初にそのメモリを指していたすべての変数は、再利用されたメモリに対して操作できなくなり、そのメモリを呼び出そうとした変数は null を返します。

シンボル テーブル内のメモリの参照カウントが 0 の場合にのみ、PHP エンジンはこのメモリを再利用します。

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