これを読みましたが、私の解決策には合いません。私の CakePHP 2 アプリケーションでメモリと CPU 時間のボトルネックを見つける必要があります。コントローラーのアクションを使用microtime
しmemory_get_usage
て、いくつかの手がかりを見つけました。これで一部を修正しました。しかし、すべてのコントローラー アクションを 1 つずつ診断するのは非常に困難です。
アクションごとに CPU とメモリの負荷をログに記録する必要があります。コントローラーに 2 つのグローバル変数を配置する予定です。beforeFilter と afterFilter 内でそれらを計算し、後でチェックするためにログに記録します。これは適切な方法ですか、それとも別の解決策をお勧めできますか?
class AppController extends Controller {
var $requestStartTime = 0;
var $requestDifTime = 0;
var $memoryBefore = 0;
var $memoryAfter = 0;
function beforeFilter() {
$requestStartTime = microtime(true);
$memoryBefore =memory_get_usage(true);
}
function afterFilter() {
$requestDifTime = microtime(true) - $requestStartTime;
$memoryAfter = memory_get_usage(true);
$myFile = TMP.'logs'.DS.'mylog.txt';
$fh = fopen($myFile, 'a');
$string = "start time:" . $requestStartTime .
" dif time: " . $requestDifTime
" memory usage: " . $memoryBefore . " and " . $memoryAfter
."\n";
fwrite($fh,$string);
fclose($fh);
}
}