LOGGER LE TEMPS D'EXÉCUTION DE VOS FONCTIONS PHP

cs_Astalavista Messages postés 192 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 3 février 2010 - 19 avril 2010 à 22:57
djroulo Messages postés 25 Date d'inscription dimanche 22 février 2004 Statut Membre Dernière intervention 21 octobre 2008 - 21 avril 2010 à 17:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51641-logger-le-temps-d-execution-de-vos-fonctions-php

djroulo Messages postés 25 Date d'inscription dimanche 22 février 2004 Statut Membre Dernière intervention 21 octobre 2008
21 avril 2010 à 17:20
Attention tout de même, ces fonctions permettent de mesurer les retours sur des fonctions qui ne renvoient pas toujours le même contenu.

Je m'explique, prenez une fonction qui retourne TRUE ou FALSE suivant une requête SQL. Avec ces fonctions de log, vous êtes capable de mesurer le temps que prendra la fonction d'arriver jusqu'au TRUE et celui d'arriver jusqu'à FALSE...

Merci encore pour vos commentaires qui m'ont permis de corriger.
cs_spoonisback Messages postés 72 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 5 février 2010
20 avril 2010 à 19:33
Salut,

4 fonctions non optimisées ne méritent pas un niveau initié.

Pourquoi ne pas avoir fait de classe, les objets sont plus facilement manipulable..?
cs_Astalavista Messages postés 192 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 3 février 2010
19 avril 2010 à 22:57
Je trouve dommage qu'un programme servant a calculer un temps d'exécution si peut optimisé au niveau de sont temps a lui même :) (j'espère que c'est français)
Pour ma part, la fonction se serais résumé à ça :
function LogFunctionExecution($Function, $arrParams, $msg){
$time = microtime ( true );
$Return = call_user_func_array ( $Function, $arrParams );
$time = microtime( true ) - $time;
file_put_contents ( 'logs/'.$Function.'.log', $msg."\t".$time."\n", FILE_APPEND );
return $Return;
}
Et on pourrais l'utiliser de cette façon :$SelectedUsers LogFunctionExecution( 'SelectionerClients', array('ID'> 5), 'Test Fonction');
Le petit défaut de mon code, compatible uniquement PHP > 5 ...

Ha oui, j'ai pas compris pourquoi tu as mit le nom de la fonction appelé dans le log, alors que le fichier à déjà le nom de la fonction ?! ...

Bonne prog !