我讀this,但它不符合我的解決方案。 我需要找出CakePHP 2應用程序中的內存和CPU時間瓶頸。 在控制器動作中使用microtime
和memory_get_usage
我發現了一些線索。我用這個解決了一些問題。但是,要逐個診斷每個控制器的操作是非常困難的。在CakePHP中查找內存和CPU時間瓶頸
我需要爲每個操作記錄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);
}
}
不要忘記xdebug。它可以提供有關您的瓶頸的信息。 – 2012-08-05 20:20:06