現在の位置: ホーム> 最新記事一覧> PHPパフォーマンスをチューニングするときにRealPath_Cache_Sizeを正しく使用する方法

PHPパフォーマンスをチューニングするときにRealPath_Cache_Sizeを正しく使用する方法

gitbox 2025-05-29

RealPath_Cache_Sizeは、PHPパフォーマンスの最適化を実行する際に、見落とされがちですが、非常に有望な構成アイテムです。 PHPがファイルパスの解像度を処理する方法に影響します。これは、すべてのファイル操作で呼び出すことができるため、その最適化効果は大規模なプロジェクトで特に明白です。

RealPathキャッシュとは何ですか?

PHPでは、 include要求file_exists() 、またはis_readable()関数を使用する場合、PHPは絶対パスとして渡すパスを解析する必要があります。この解析プロセスには、特にファイルシステムが複雑であるか、非常にパフォーマンス集約的な多数のシンボリックリンクを使用するシステムでは、ディスクIOが含まれます。

このプロセスをスピードアップするために、PHPは、キャッシュが解析されたパスの結果をキャッシュし、繰り返し解析を回避する「RealPathキャッシュ」を提供します。このキャッシュのサイズは、 RealPath_Cache_Sizeによって制御されます。

現在のRealPathキャッシュの使用法を次の方法で表示できます。

<code> var_dump(realpath_cache_size()); var_dump(realpath_cache_get()); </code>

RealPath_cache_sizeを設定する方法は?

PHP.iniファイルでは、デフォルトのRealPath_Cache_Sizeはわずか16Kである可能性がありますが、これは複雑なプロジェクトには十分ではありません。その価値を増やすことができます:

<code> realpath_cache_size = 4096k </code>

または、実行時にini_setを介して一時的に設定できます。

<code> ini_set( 'RealPath_Cache_Size'、 '4096K'); </code>

値が大きいほど良いことは注目に値します。過度のキャッシュはメモリ無駄を引き起こす可能性があります。推奨されるアプローチは、実際の監視を通じてそれをサイズ変更することです。 RealPath_cache_get()関数を組み合わせて、キャッシュのヒット率と現在のメモリ使用法を観察できます。

実際のアプリケーションの最適化の例

大規模なフレームワークを開発したり、多数のオートロードに依存しているLaravelアプリケーションを実行したり、システムに何千ものパス解像度操作があるとします。 RealPath_cache_sizeを調整しない場合、特定の高負荷でパフォーマンスボトルネックに遭遇する可能性があります。

単純なワンライン構成を介して調整します。

<code> realpath_cache_size = 4096k </code>

これにより、パス解像度でのPHPのオーバーヘッドが大幅に減少し、それにより全体的な応答速度が向上します。

また、 StraceDtruss (MacOS)などのツールを介してPHPプロセスのファイルシステムコール周波数を監視し、調整前後の比較と分析を実行することもできます。

オンライン環境で注意すべきこと

  1. 監視を続けてくださいRealPath_Cache_Get()を使用して、キャッシュの使用量を定期的に分析します。

  2. 合理的な評価:過度の値を盲目的に設定したり、システムのメモリとパフォーマンスの要件を評価したりしないでください。

  3. Opcacheと組み合わせて使用​​: Opcacheが有効になっている場合、RealPathキャッシュは、含まれるファイルパス解像度の効率をさらに改善できます。

  4. マルチ環境構成:開発環境は、メモリを保存するために低い値を設定できますが、生産環境はそれを上げることをお勧めします。

要約します

RealPath_Cache_Sizeは、PHPパフォーマンスチューニングにおける控えめで効率的なツールです。合理的に設定することにより、特に大きなフレームワークと複雑なディレクトリ構造を持つプロジェクトで、ファイルパス解像度のオーバーヘッドを大幅に削減できます。毎日の開発と展開では、このパラメーターを定期的に評価および調整して、PHPアプリケーションをより速く安定させることもできます。

キャッシュコンテンツを深く表示またはデバッグするには、次のコードを使用して現在のキャッシュの詳細を出力できます。

<code> print_r(realpath_cache_get()); </code>

RealPath_Cache_Sizeの調整は、PHPが迂回路を取得し、より多くの直線を摂取するのを防ぐためです。