PHP ガベージ コレクション メカニズムによるメモリ オーバーフローの防止_PHP チュートリアル

WBOY
リリース: 2016-07-15 13:34:22
オリジナル
981 人が閲覧しました

1. PHP ガベージ コレクション メカニズム (ガベージ コレクター、GC と呼ばれます)

PHP では、このオブジェクトを指す変数がない場合、このオブジェクトはガベージになります。 PHP はこれをメモリ内で破棄します。これは、メモリのオーバーフローを防ぐための PHP の GC ガベージ処理メカニズムです。

PHP スレッドが終了すると、現在占有されているすべてのメモリ空間が破棄され、現在のプログラム内のすべてのオブジェクトも同時に破棄されます。 GC プロセスは通常、セッションごとに実行を開始します。gc の目的は、セッション ファイルが期限切れになった後に自動的に破棄して削除することです。リサイクルされています。

unset は、オブジェクトではなく、オブジェクトを指す変数を破棄します。

3. セッションと PHP のガベージ コレクション メカニズム


PHP の動作メカニズムにより、PHP にはセッション情報を定期的にスキャンして、有効なリクエストが発生したときにセッション情報が無効であるかどうかを判断するデーモン スレッドがありません。変数 session.gc_probability および session.gc_divisor の値は、GC を有効にするかどうかを決定します。デフォルトでは、session.gc_probability=1、session.gc_divisor =100 は、GC を開始する可能性が 1% であることを意味します。つまり、100 個のリクエストのうち 1 つで 1 つの gc のみが開始されます)。PHP ガベージ コレクション メカニズムの仕事は、すべてのセッション情報をスキャンし、現在の時刻からセッションの最終変更時刻を減算することです。 session.gc_maxlifetime パラメータと比較して、生存時間が gc_maxlifetime (デフォルトは 24 分) を超えると、セッションは削除されます。

ただし、Web サーバーに複数のサイトがある場合、GC はセッションの処理中に予期しない結果を引き起こす可能性があります。その理由は、GC が動作しているときに、異なるサイトのセッションを区別できないためです。それ?

1. session.save_path を変更するか、session_save_path() を使用して各サイトのセッションを専用のディレクトリに保存します。 2. GC の起動速度が向上します。システムのパフォーマンスもそれに応じて低下するため、お勧めできません。

3. コード内の現在のセッションの生存時間を確認し、session_destroy() を使用して削除します。


http://www.bkjia.com/PHPjc/445985.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/445985.html


技術記事

1. PHP ガベージ コレクション メカニズム (ガベージ コレクター、GC と呼ばれます) PHP では、このオブジェクトを指す変数がない場合、オブジェクトはガベージになります。 PHP はメモリ内でそれを破壊します。これは...

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!