Метод наилучшей практики, чтобы найти время выполнения в Zend Framework - PullRequest
4 голосов
/ 24 июля 2010

Меня интересует лучший / стандартный способ определения времени выполнения моего приложения Zend Framework.В настоящее время я запускаю таймер в public / index.php, затем регистрирую его в Zend_Registry для последующего вызова, который затем использует макет для вычисления общего времени.

Есть ли лучший способ сделать это?Я знаю, что это даже не совсем точно, поскольку все еще есть (или, по крайней мере, может быть) некоторое выполнение в postDispatch (), которое будет выполнено после визуализации представления.

Ответы [ 3 ]

3 голосов
/ 22 декабря 2010

Я закончил тем, что добавил

$appStartTime = microtime();

до того, как загрузчик заскрипел и положил

global $appStartTime;
@list( $startMilli, $startSeconds, $endMilli, $endSeconds) = explode(' ',$appStartTime . ' ' . microtime());
$generateTime = ($endSeconds+$endMilli)-($startSeconds+$startMilli);
printf( '. Generated in %.3fs', $generateTime);
if ($generateTime > 1) // one second
{
    Zend_Registry::get( 'logger' )->warn( 'Long page load time of ' . $generateTime . ' on ' . Zend_Controller_Front::getInstance()->getRequest()->getRequestUri() );
}

в конце моего layout.phtml как последняя вещь перед закрывающим тегом body

3 голосов
/ 01 марта 2011

Я сам использую webgrind и профилирование xdebug. Это дает информацию не только об общем времени выполнения, но и, например, сколько раз выполнялся данный метод, сколько времени было выполнено и т. д.

1 голос
/ 24 июля 2010

Возможно, вы захотите подключить реальный профилировщик кода, например XHProf .

...