2010-07-24 13 views
4

Je suis intéressé par le meilleur moyen de trouver le temps d'exécution de mon application Zend Framework. Actuellement, je lance le timer sur public/index.php puis je l'enregistre dans Zend_Registry, pour un appel ultérieur, que la mise en page utilise ensuite pour calculer le temps total.Méthode de meilleure pratique pour trouver l'heure d'exécution dans Zend Framework

Y a-t-il une meilleure façon de procéder? Je sais que ce n'est même pas tout à fait exact, car il y a encore (ou au moins, peut-être) une certaine exécution dans le postDispatch() qui sera exécuté après le rendu de la vue.

Répondre

1

Vous voudrez peut-être envisager d'activer un vrai profileur de code comme XHProf.

+0

Bien que ce soit agréable pour certaines choses, je ne pense pas vraiment qu'il serait utile de sortir le temps d'exécution dans la vue. Corrigez-moi si je me trompe, mais cela ressemble plus à un profileur, au lieu de montrer simplement le temps d'exécution sur la page. – mctom987

3

Je fini par ajouter

$appStartTime = microtime(); 

avant le programme d'amorçage obtenu intsantiated et mis

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()); 
} 

à la fin de mon layout.phtml comme la dernière chose avant la balise de corps de fermeture

3

J'utilise moi-même le webgrind et le profilage xdebug. Cela donne des informations non seulement sur le temps d'exécution total, mais aussi par ex. combien de fois une méthode donnée a été exécutée, quelle était l'heure de cette exécution, etc.