PHPプログラム加速探索[9]--加速--関数キャッシュ出力PEAR cache


◆関数キャッシュ出力PEAR cache
PEARは、出力されたコンテンツをキャッシュ処理するほか、ある関数の呼び出し結果をキャッシュすることもできる.これは面白い機能です.もしあなたのプログラムが頻繁に関数を使用し、呼び出しの結果が同じであれば、特にこの関数が遅く動作しているときに試してみることをお勧めします.
次に,実行が遅い関数slowFunction()のバッファ呼び出しを実現する.<?php require_once 'Cache/Function.php' ; $cacheDir = './pear_cache/' ; $cache = new Cache_Function ( 'file' ,array( 'cache_dir' => $cacheDir )); $arr = array( ' ' , ' ' , ' ' ); $cache -> call ( 'slowFunction' , $arr ); echo '<BR>' ; $arr = array( ' ' , ' ' , ' ' ); slowFunction ( $arr ); function slowFunction ( $arr = null ) { echo " :( <br>" ; echo " " . date ( 'M-d-Y H:i:s A' , time ()) . '<br>' ; foreach ( $arr as $fruit ) { echo " $fruit <br>" ; } ) ?> は、以下に例示的なスクリプト実行結果を示す.
実行が遅い関数です.(現在の時間はJul-28-2004 17:15:57 PMです.りんごを食べました.梨を食べました.スイカを食べました.実行が遅い関数です.(現在の時間はJul-28-2004 17:55 PMです.りんごを食べました.梨を食べました.スイカを食べました.
コードでは、Cache/Function.phpクラスは関数バッファ機能を実行するために使用されます.$cache変数はCache_Functionオブジェクトであり、ファイルベースの関数キャッシュを使用して$cacheDirディレクトリに格納されます.関数コールをキャッシュするには、Cache_Functionオブジェクト$cacheのcall()メソッドは、$cache->call('slowFunction',$arr);
ここで、slowFunction()関数が呼び出され、パラメータは$cacheDirディレクトリの下のファイルにキャッシュされる配列$arrです.その後の関数の呼び出しは、$cache->call()によって関数が実行した結果を返します.
関数キャッシュと使用方法はコンテンツキャッシュと似ていますが、詳しくはPEARマニュアルを参照してください.