36 votes

Profiler le code PHP

Je voudrais trouver un moyen de déterminer combien de temps chaque fonction en PHP, et chaque fichier en PHP prend pour s'exécuter. J'ai une ancienne application PHP dans laquelle j'essaie de trouver les «points difficiles» et j'aimerais donc localiser les routines et les pages qui prennent très longtemps à se charger, de manière objective.

Existe-t-il des outils prédéfinis qui permettent cela, ou suis-je bloqué en utilisant microtime et en construisant mon propre cadre de profilage?

43voto

SchizoDuckie Points 6420

J'ai effectivement fait quelques optimisations de travail la semaine dernière. XDebug est en effet la voie à suivre.

Il suffit d'activer comme une extension (pour une raison que ça ne marcherait pas avec ze_extension sur ma machine windows) , le programme d'installation de votre php.ini avec xdebug.profiler_enable_trigger=Sur et appel normal de votre url avec XDEBUG_PROFILE=1 soit un get ou un post variable de profil très demande. Il n'y a rien de plus facile!

Aussi, je peux vraiment recommandons webgrind , un sur le web (php) pour le google Summer Of Code projet qui peut les lire et les analyser vos fichiers de sortie de débogage!

8voto

petsagouris Points 463

Voici un bon conseil.

Lorsque vous utilisez XDebug pour profiler votre PHP, configurez le profiler_trigger et utilisez-le dans un bookmarklet pour déclencher le profileur XDebug;)

 javascript:if(document.URL.indexOf('XDEBUG_PROFILE')<1){var%20sep=document.URL.indexOf('?');sep%20=%20(sep<1)?'?':'&';window.location.href=document.URL+sep+'XDEBUG_PROFILE';}
 

6voto

enobrev Points 10306

jetez un oeil dans xdebug, qui permet le profilage en profondeur. Et voici une explication de la façon d'utiliser xdebug.

Xdebug est Profiler est un outil puissant qui vous donne la possibilité d'analyser votre code PHP et de déterminer les goulots d'étranglement ou de façon générale, voir qui les parties de votre code sont lents et pourrait utiliser un boost de vitesse. Le profiler dans Xdebug 2 sorties d'informations de profilage sous la forme d'un cachegrind compatible fichier.

Bravo à SchizoDuckie pour mentionner Webgrind. C'est la première fois que j'ai entendu parler de lui. Très utile (+1).

Sinon, vous pouvez utiliser kcachegrind sur linux ou sa moindre dérivés wincachegrind. Ces deux applications de lecture xdebug de profiler les fichiers de sortie et les résumer pour votre plaisir de visionnement.

3voto

Jake McGraw Points 16515

Une fois, j'ai vu un casting pour Zend Core . Ça a l'air bien, mais ça coûte vraiment de l'argent, je ne sais pas si c'est un problème pour vous.

3voto

Marc Gear Points 2503

XDebug est bien, mais ce n’est pas si facile à utiliser ou à configurer IMO.

Le profileur intégré à Zend Studio est très facile à utiliser. Vous venez de cliquer sur un bouton de la barre d’outils du navigateur et BAM vous avez votre profil de code. C’est peut-être pas aussi complet qu’un dump CacheGrind, mais c’est toujours suffisant pour moi.

Vous devez également installer Zend Platform, mais c'est simple et gratuit pour le développement - vous devez quand même payer pour la licence Zend Studio.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X