PHP で頻繁に呼び出される関数のパフォーマンスを最適化するために、関数の結果をキャッシュできます。 2 つのキャッシュ戦略があります: 1. 静的関数は結果を静的変数に保存します。 2. APC 拡張機能はバイトコードと関数の結果をキャッシュするために使用されます。これらの戦略を使用すると、複雑な関数の計算時間を効果的に短縮し、アプリケーションのパフォーマンスを向上させることができます。
PHP 関数呼び出しにおけるキャッシュ最適化戦略
PHP で頻繁に呼び出される関数を実行すると、特に時間がかかる場合があります。これらの関数には複雑な計算や I/O 操作が含まれます。パフォーマンスを向上させるために、関数の結果をキャッシュすることで後続の呼び出しを最適化できます。この記事では、PHP での関数呼び出しキャッシュに関する 2 つの戦略について説明します。
方法 1: static
関数を使用する
static
このキーワードを使用すると、関数の結果を静的変数に保存し、後続の呼び出しで結果を直接返すことができます。例:
function factorial($n) { static $cache = []; if (isset($cache[$n])) { return $cache[$n]; } else { $result = 1; for ($i = 1; $i <= $n; $i++) { $result *= $i; } $cache[$n] = $result; return $result; } }
方法 2: PHP を使用する APC
APC (代替 PHP キャッシュ) は、スクリプトのバイトコードと関数の結果をキャッシュするために使用される PHP モジュールです。 APC キャッシュ関数呼び出しを使用するには、APC 拡張機能をインストールし、apc.enabled
設定を有効にする必要があります。 設定:
if (extension_loaded('apc')) { function factorial($n) { $cacheKey = 'factorial_' . $n; if ($result = apc_fetch($cacheKey)) { return $result; } else { $result = 1; for ($i = 1; $i <= $n; $i++) { $result *= $i; } apc_store($cacheKey, $result, 3600); // 缓存 1 小时 return $result; } } }
実際のケース: フィボナッチ数列
Fi #ボナッチ数列の ##n 項は、
Fib(n) = Fib(n-1) Fib(n-2) として定義されます。上記のキャッシュ戦略を使用してフィボナッチ数列計算を実装するコードは次のとおりです:
static 関数:
function fibonacci($n) { static $cache = []; if (isset($cache[$n])) { return $cache[$n]; } elseif ($n <= 1) { $result = $n; } else { $result = fibonacci($n - 1) + fibonacci($n - 2); } $cache[$n] = $result; return $result; }
APC の使用: そうです
以上がPHP 関数呼び出しでのキャッシュ最適化戦略の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。