Mesure de la performance ?

Eléphant du PHP | 94 Messages

11 nov. 2006, 20:40

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 ?
rspir

Mammouth du PHP | 19672 Messages

11 nov. 2006, 21:00

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 94 Messages

11 nov. 2006, 21:04

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:
rspir

Mammouth du PHP | 19672 Messages

11 nov. 2006, 21:17

En principe, c'est la directive max_execution_time qui par défaut est à 30 secondes dans le php.ini
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 94 Messages

11 nov. 2006, 21:24

Pardon ... je parlais de la mémoire.
Pour la durée, cela roule avec microtime :wink:
rspir

ViPHP
fab
ViPHP | 2657 Messages

11 nov. 2006, 23:45

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é :'(
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Mammouth du PHP | 19672 Messages

12 nov. 2006, 00:05

En y repensant, il y aurait peut-être (à vérifier) une extension PECL qui permettrait de traiter ce problème ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1380 Messages

12 nov. 2006, 09:56

Et aussi:
memory_get_usage()
memory_get_peak_usage()
ripat

Eléphant du PHP | 94 Messages

12 nov. 2006, 12:00

C'est exactement cela

Merci à tous
rspir