realpath キャッシュが実際に何をしているのかを理解できませんでした。
ここに私が持っている質問のいくつかがあります:
パスがキャッシュされる正確なタイミングと、パスがキャッシュされない可能性のある条件は?
どのようにキャッシュされますか? メモリ内、ファイル システム上、他に何かありますか? ファイルシステムの場合、ファイルはどこにありますか?
キャッシュはリクエストごとですか? つまり、複数のキャッシュですか、それとも正規のリアルパス キャッシュが 1 つだけですか?
var_dump(realpath_cache_get())
キャッシュをダンプして保持し、ページを更新するとCtrl+ 、キャッシュされたダンプの出力が異なる場合があることに気付きましたF5??? ここで何が起きてるの?キャッシュはいつ、どのようにクリア/クリーニングされますか? バックグラウンド プロセス、ある種のガベージ コレクター。たとえば、ガベージ コレクターの場合: いつ実行され、どのような基準で実行されますか? たとえば、リクエストごとにランダムですか?わかりません、ここで唾を吐いているだけです。
注: を呼び出して手動でキャッシュをクリアできるようです
clearstatcache(true)
。
realpath_* 関数
設定オプション
realpath_cache_size
"16K"
PHP_INI_SYSTEM
PHP 5.1.0 以降で利用可能です。
realpath_cache_ttl
"120"
PHP_INI_SYSTEM
PHP 5.1.0 以降で利用可能です。
(説明書より)
realpath_cache_size
integer
PHP が使用するリアルパス キャッシュのサイズを決定します。PHP が多くのファイルを開くシステムでは、実行されるファイル操作の量を反映するために、この値を大きくする必要があります。
realpath_cache_ttl
integer
特定のファイルまたはディレクトリのリアルパス情報をキャッシュする期間 (秒単位)。ファイルがほとんど変更されないシステムの場合は、値を大きくすることを検討してください。