Page 1 sur 1

Mesure de la performance ?

Posté : 11 nov. 2006, 20:40
par rspir
Bonjour

Pour des raisons de performance serveur, mon admin a du limiter la mémoire utilisable par process pour le traitement d'une requete PHP et les durées des requetes PHP (max execution time).

Pour affiner mon code dans mon environnement de dev, j'aurais voulu afficher (à l'affichage de la page) la mémoire utilisée par ma requete et sa durée de réalisation.

Cela existe sous PHP ?

Posté : 11 nov. 2006, 21:00
par Cyrano
Pour la durée de l'exécution, tu peux utiliser microtime() pour mettre des repères, un avant, un après et tu fais une soustraction pour obtenir le temps d'exécution. Mais pour la mémoire, je ne sais pas vraiment :-k

Posté : 11 nov. 2006, 21:04
par rspir
Oui microtime() est nickel, je venais de mettre la main dessus en regardant un mod (Page génération time) de phpbb.

Mais pour la mémoire ... pas mieux ... je cherche encore.

Comme je connais la valeur max autorisée par l'admin, je peux peut être adapter mon environnement ... mais sous MAMP, je ne sans pas comment ni quelle valeur modifier dans la conf. :cry:

Posté : 11 nov. 2006, 21:17
par Cyrano
En principe, c'est la directive max_execution_time qui par défaut est à 30 secondes dans le php.ini

Posté : 11 nov. 2006, 21:24
par rspir
Pardon ... je parlais de la mémoire.
Pour la durée, cela roule avec microtime :wink:

Posté : 11 nov. 2006, 23:45
par fab
Pour la mémoire il ne semble pas possbible de connaitre depuis php la quantité de mémoire utilisée de telle ou telle requete php ne connaissant même pas sa propre quantité de mémoire utilisée.
Enfin en tout cas je n'ai jamais trouvé de solution pour ce problème que j'avais rencontré lors d'une fuite de mémoire.
Seule solution parallele que j'avais trouvé est de faire un script parallele qui vérifie en continue la mémoire de php, mais ça reste globale... puis apres faut le transmettre a l'application en cours ce qui requiert d'un coté un servuer a l'aide des sockets et de l'autre coté l'utilisation des sockets...
Enfin bref c'est pas vraiment une solution et moi je me suis égaré :'(

Posté : 12 nov. 2006, 00:05
par Cyrano
En y repensant, il y aurait peut-être (à vérifier) une extension PECL qui permettrait de traiter ce problème ?

Posté : 12 nov. 2006, 09:56
par Ripat
Et aussi:
memory_get_usage()
memory_get_peak_usage()

Posté : 12 nov. 2006, 12:00
par rspir
C'est exactement cela

Merci à tous