SessionHandler::gc

セッション

SessionHandler::gcとは?

 状態:-  閲覧数:1,545  投稿日:2017-02-10  更新日:2017-02-10  
有効期限を過ぎたセッション(ファイル)を削除する、SessionHandlerクラスのクラスメソッド


呼び出されるタイミングは?


PHP がセッションを開始したとき、あるいは session_start() を実行したとき、にコールされる
→ ユーザがアクセスしてきたタイミング


呼び出される頻度は?


session.gc_divisor 及び session.gc_probability の設定に基づいて決定
・session.gc_divisorと session.gc_probabilityの組み合わせで gc(ガーベッジコネクション)プロセス が始動する確率を制御
・確率は gc_probability/gc_divisor で計算される

session.gc_divisor
・デフォルト100

session.gc_probability
・デフォルト1

gc_probability/gc_divisor
・1/100
→ 各リクエスト毎に1%の確率でGCプロセスが 始動
⇒100アクセス中1回くらいの割合でGCが起動されてセッションファイルが削除される


呼び出されない頻度は?


デフォルトでは
・100回中99回のアクセスではGCが起動されず、有効期限の切れたセッションでも削除されない
→ アクセスが少ないサイトであれば、セッションデータはそれなりに長い間残り続ける



SessionHandler::gc
PHPのガベージコレクションの発生確率について


session.gc_maxlifetime

コメント投稿(ログインが必要)



週間人気ページランキング / 8-6 → 8-12
順位 ページタイトル抜粋 アクセス数
1 定数 4
1 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 4
2 PHP用語 3
2 「POSIX正規表現」と「PCRE正規表現」の違い 3
2 結合時の評価と優先順位 | 演算子 3
2 PHPで定数を定義する方法は2種類ある / 配列定数の定義 3
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 3
3 セッション管理が必要な理由は、HTTPプロトコルには状態を保持する機能がないため | セッション 2
3 コード例 … 「例外処理」はネストすることができる 2
3 ブラウザを閉じたらセッションデータはどうなるの? | セッション 2
3 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 2
3 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 2
3 curl で Cookie を使用する 2
3 ( ! ) Warning: Declaration of xxxx should be compatible with | エラーメッセージ 2
3 http_build_query | URLs(関数) 2
3 and | 演算子 2
3 Cookie | クッキー 2
4 Warning: PDO::query(): LOAD DATA LOCAL INFILE forbidden | Warning(エラーメッセージ) 1
4 You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpoint, you’ll need to apply for Elevated access via the Developer Portal. | Twitter API(エラーメッセージ) 1
4 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined | Fatal error(エラーメッセージ) 1
2025/8/13 1:01 更新