PHPでは、 RealPath()関数を使用して、特定のファイルパスを解析し、そのパスの絶対パスを返します。 RealPath()が複数回呼び出されると、PHPはデフォルトで解析されたファイルパスをキャッシュして、毎回繰り返し計算を回避し、パフォーマンスが向上します。 RealPath_Cache_Sizeは、このキャッシュのサイズを制御するために使用されます。
ファイルパスの解像度のキャッシュが入力されると、PHPはキャッシュをクリアし、ファイルパスを再計算します。ファイルパスが非常に頻繁に呼ばれる場合、キャッシュサイズを適切に増やすと、キャッシュの頻度が空になり、ファイルシステム操作の数が減り、アプリケーションの全体的なパフォーマンスが向上します。
RealPath_Cache_Sizeを構成するには、PHPのPHP.ini構成ファイルに設定できます。デフォルトでは、 RealPath_Cache_Sizeの値は16KBで、ほとんどのアプリケーションで十分です。ただし、ファイルパスの頻繁な解析を必要とする一部のアプリケーションでは、キャッシュのサイズを大きくするとパフォーマンスが大幅に向上する可能性があります。
php.iniファイルでrealpath_cache_sizeを設定します。
<span><span><span class="hljs-attr">realpath_cache_size</span></span><span> = </span><span><span class="hljs-number">64</span></span><span>k
</span></span>
これにより、キャッシュサイズが64kbになります。より大きなキャッシュが必要な場合は、次のようなより高い値に設定できます。
<span><span><span class="hljs-attr">realpath_cache_size</span></span><span> = </span><span><span class="hljs-number">128</span></span><span>k
</span></span>
現在のRealPath_Cache_Size値がわからない場合は、 phpinfo()またはini_get()関数を介して表示できます。例えば:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">ini_get</span></span><span>(</span><span><span class="hljs-string">'realpath_cache_size'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
これにより、現在構成されているキャッシュサイズが返されます。
RealPath_Cache_Sizeに加えて、 RealPath_Cache_TTLは、ファイルパスキャッシュに関連する重要な構成でもあります。 realpath_cache_ttl秒単位で、キャッシュのパスデータの有効な時間を定義します。デフォルトでは、TTLは120秒です。つまり、キャッシュされたパスデータは120秒後に期限切れになります。
必要に応じて、このパラメーターの値を調整できます。ファイルパスが頻繁に変更された場合、TTLの時間を長くしてキャッシュデータを長く保ち、それによりキャッシュのクリアと再計算の頻度を減らすことができます。
<span><span><span class="hljs-attr">realpath_cache_ttl</span></span><span> = </span><span><span class="hljs-number">3600</span></span><span>
</span></span>
これにより、パスキャッシュが3600秒(つまり1時間)有効になります。
RealPath_Cache_Sizeを増やすことは常に最良の選択ではありません。次の場合にのみ必要です。
高周波ファイルパス解像度:アプリケーションに多くのファイルパス解像度(ファイルシステムスキャン、多くのインクルードコールなど)が含まれる場合、キャッシュサイズを増やすとパフォーマンスが大幅に向上する可能性があります。
大規模なアプリケーション:多数のファイルまたはディレクトリを含む大規模なプロジェクトの場合、 RealPath_Cache_Sizeを合理的に構成すると、ファイルパス解像度のオーバーヘッドを減らすことができます。
高負荷環境:高負荷生産環境では、 RealPath_Cache_Sizeを増やすと、ファイルシステムへのアクセスを減らし、応答速度を向上させることができます。
RealPath_Cache_Sizeを増やすときは、キャッシュが大きすぎるとメモリが増えるため、サーバーに十分なメモリがあることを確認する必要があります。
極端な場合には、過度のキャッシュがPHPメモリの使用量が高すぎる可能性があるため、実際の条件に応じて調整を行う必要があります。
頻繁にキャッシュをクリアすることは、パフォーマンスの問題を引き起こす可能性があるため、アプリケーションの要件に応じてキャッシュサイズとTTL設定のバランスを取るようにしてください。