PHP session_start() は非常に遅い問題分析と解決策_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:43:09
オリジナル
1229 人が閲覧しました

この記事では、PHP session_start() が非常に遅い問題の分析と解決策を紹介します。この問題に遭遇した学生はそれを参照してください。


最近何かを作っているときに問題を発見しました

1 つのインターフェイスがダウンしており、アクセス アドレスをテストする際、ブラウザは常に応答を待っています

どのようにアクセスしても、Webサーバーを再起動することしかできません。

コードのデバッグのために Web サーバーを再起動しないと、session_start() 中に続行できないことが常にわかります

問題の原因がついに理解されました:

セッションはサーバー側に保存されるため、ブラウザーによって送信されたリクエストは、リクエストを処理するために Web サーバーにスレッドを確立します

ブラウザが応答を待っているという事実は、Web サーバーがリクエストを処理していることを示していますが、応答のタイムアウトが非常に長いため、次回はデバッグが必要になる可能性があります。

前のリクエストが終了する前にセッション リソースを占有しているため、再度リクエストすると、セッション リソースが取得されるまで常に待機することになります。

つまり、最後のリクエストが終了したときにのみ、セッションリソースを正常に取得してコード分析に入ることができます


以前は、PHP ページで session_start() メソッドを呼び出すのが非常に遅く、数十秒かかることもありましたが、今回、その理由がついにわかりました。

解決策


セッションはファイルを使用するため、複数のリクエストが行われるとセッション ファイルはロックされます。セッションが使用されていないときは、できるだけ早くセッションを解放するようにしてください。
session_write_close() メソッドを使用します

例えば

コードは次のとおりですコードをコピー
session_start(); //セッションを開始します

$_SESSION['user']="私";
session_write_close(); // 書き込み機能を閉じる
echo $_SESSION['user'] // まだアクセスできます

http://www.bkjia.com/PHPjc/633201.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/633201.html技術記事この記事では、PHP session_start() が非常に遅い問題の分析と解決策を紹介します。この問題に遭遇した学生は参考にしてください。 最近何かを作っていたら、発見がありました…
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!