나는 this을 읽었지만 내 솔루션에 맞지 않습니다. CakePHP 2 애플리케이션에서 메모리와 CPU 시간 병목 현상을 찾아야합니다. microtime
및 memory_get_usage
컨트롤러 동작에서 나는 몇 가지 단서를 발견했습니다. 나는 이것으로 몇 가지를 고쳤다. 그러나 모든 컨트롤러 동작을 하나씩 진단하는 것은 매우 어렵습니다.CakePHP에서 메모리 및 CPU 시간 병목 현상 찾기
각 작업마다 CPU 및 메모리 부하를 기록해야합니다. 내 컨트롤러에 2 개의 전역 변수를 넣을 계획입니다. 그리고 필터를 필터하기 전에 내부에서 계산하고 나중에 점검하기 위해 필터에 기록하십시오. 올바른 방법입니까 아니면 다른 솔루션을 권장 할 수 있습니까?
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);
}
}
xdebug를 잊지 마세요. 병목 현상에 대한 중요한 정보를 제공 할 수 있습니다. –