PHPでは、 RealPath_Cache_SizeはRealPathキャッシュのサイズです。具体的には、 RealPathは、ファイルへの絶対パスを取得するためのPHPの関数です。 PHPが実行されているとき、 RealPath関数を介してファイルの実際のパスを計算します。このプロセスは、システムのファイルシステムに基づいて実装されています。パフォーマンスを改善するために、PHPは解析されたファイルパス情報をキャッシュし、毎回パス解像度を回避します。
RealPath_Cache_Sizeは、このキャッシュの最大サイズを制御し、そのデフォルト値は通常4096バイト(4 kb)です。これは、PHPが最大4kbのパスキャッシュを保存することを意味します。キャッシュサイズがこの制限を超えると、PHPはキャッシュをクリアし、再び新しいパスの登録を開始します。
PHPがランタイム中に頻繁にファイルパスの解像度を実行し、コードに多数のファイルが含まれている場合、特に大規模なアプリケーションで操作が含まれるか、または必要とする場合、パス解像度はパフォーマンスボトルネックになる可能性があります。キャッシュサイズが小さすぎる場合、PHPはキャッシュを頻繁にクリアし、ファイルパスを再計算する必要があり、それによりアプリケーションの実行効率が低下します。
RealPath_Cache_Size値の適切な調整は、特にCLIモードで長期にわたるスクリプトが実行される場合、パス解像度の速度を大幅に改善できます。アプリケーションで多数のファイルインクルージョンを使用すると、キャッシュサイズを大きくすると、パフォーマンスが大幅に向上する可能性があります。
RealPath_cache_sizeは、 php.iniファイルを介して構成するか、実行時に動的に変更できます。一般的な構成方法は次のとおりです。
たとえば、 php.iniでrealpath_cache_sizeを設定できます。
<span><span><span class="hljs-attr">realpath_cache_size</span></span><span> = </span><span><span class="hljs-number">16</span></span><span>K
</span></span>これは、パスキャッシュサイズを16kbに設定することを意味します。アプリケーションのサイズとファイルの複雑さに応じて、この値を適切に調整できます。
場合によっては、スクリプトの実行中にRealPath_Cache_Sizeを動的に調整することができます。これは、 ini_set関数を通じて実現できます。
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'realpath_cache_size'</span></span><span>, </span><span><span class="hljs-string">'16K'</span></span><span>);
</span></span>この方法は、特にグローバルPHP.ini構成を変更する許可がない場合、CLIモードでの一時的な調整に非常に役立ちます。
RealPath_cache_sizeの調整は単純なパフォーマンスの最適化のように思われますが、実際の操作では、検出が容易ではないいくつかの問題に遭遇する可能性があります。
RealPath_Cache_Sizeが大きすぎると設定されている場合、特にPATH解像度集約型アプリケーションで、PHPのメモリ使用量が急激に増加する可能性があります。過度のキャッシュは、あまりにも多くのメモリリソースを占有し、パフォーマンスの劣化を引き起こします。したがって、キャッシュサイズを増やす場合、システムのメモリ容量を慎重に評価する必要があります。
一部の複雑なファイルシステム(シンボリックリンクが存在するディレクトリなど)では、PHPのパスキャッシュはファイルの実際のパスを迅速に反映しない場合があります。特に、 RealPath_Cache_Sizeが小さすぎると設定されている場合、PATHキャッシングによりPHPが時代遅れのファイルパスを返す可能性があります。これは、開発とデバッグ中に非常に一般的です。この問題を回避するために、パス解像度に問題がないことを確認するために、キャッシュ構成を変更した後、十分なテストを実施してください。
RealPath_Cache_Size構成は、CLIモードとWebモードで異なる機能を実行する場合があります。 Webモードでは、PHPは要求するたびに構成をリロードしますが、CLIモードでは、スクリプトの実行は連続していることが多く、キャッシュを自動的に更新しません。したがって、CLIモードでキャッシュ構成を変更するときは、キャッシュが時間内にクリーニングされない状況を回避するために、スクリプトの実行サイクルに特に注意を払う必要があります。
RealPath_Cache_Sizeが小さすぎると設定されている場合、パス解像度のキャッシュメカニズムは最適化効果を失います。ファイルにアクセスするたびに、PHPはパスを再計算する必要があります。これにより、実行時間が大幅に増加し、パフォーマンスの劣化につながります。したがって、この値を設定する場合、キャッシュを最大化するのではなく、実際のアプリケーションのニーズに応じてバランスをとる必要があります。
一般的に言えば、RealPath_Cache_Sizeは、次の状況に遭遇したときにRealPath_Cache_Sizeの調整を検討するためにのみ必要です。
PHPスクリプトはファイルを含めることに大きく依存しており、ファイルパスは比較的複雑です。
PHPスクリプトを実行すると、ファイルパスの解析速度が遅く、全体的なパフォーマンスに影響することがわかります。
CLIモードでは、長期にわたるPHPスクリプトの実行時にパフォーマンスボトルネックが発生します。
PHP実行ログを使用するか、いくつかのパフォーマンス分析ツールを使用して、 RealPath関数の実行時間を監視して、キャッシュサイズを調整する必要があるかどうかを判断できます。
RealPath_Cache_Sizeは、PHP構成の非常に重要なパラメーターであり、パス解像度の効率に直接影響を与えます。特にPHP CLIモードでは、多数のファイルインクルージョンとパス解像度が関係する場合、 RealPath_Cache_Sizeを合理的に構成すると、パフォーマンスを効果的に改善できます。ただし、キャッシュオーバーフロー、パスの矛盾など、この構成を調整するときにいくつかの一般的な落とし穴に注意する必要があります。実際にパフォーマンスボトルネックに遭遇した場合にのみ、実際の状況に応じてキャッシュサイズを慎重に設定する必要があります。