Classe de calcul de temps d'éxecution

Contenu du snippet

depuis le temps que je prends des codes sur ce site il fallait bien que je poste quelque chose

je cherhcais un compteur multiple de temps d'execution pour mon site
mais ne trouvant rien que des petits compteurs sur le site

j'ai donc créé très récemment une classe permettant de calculer le temps d'execution
elle fonctionne sur la basse d'un "message stack"

donc voici ma classe:

Source / Exemple :


<?php
/*
  Script par Stéphane Goetz
  
  ce script permet de créer a la volée des 
  compteurs de temps d'éxecution

  • /
class timeStack { // class constructor function timeStack() { $this->messages = array(); } // class methods function open($class) { $this->messages[] = array('class' => $class, 'time' => array_sum(explode(' ', microtime()))); } function close($class) { for ($i=0, $n=sizeof($this->messages); $i<$n; $i++) { if ($this->messages[$i]['class'] == $class) { $this->messages[$i]['time'] = round(array_sum(explode(' ', microtime())) - $this->messages[$i]['time'], 4); } } } function display($class = 'view_all_stacks') { if($class == 'view_all_stacks'){ echo '<table border="1">'; echo '<tr><th>Nom</th><th>Temps</th></tr>'; for ($i=0, $n=sizeof($this->messages); $i<$n; $i++) { echo '<tr><td>'.$this->messages[$i]['class'].'</td><td>'.$this->messages[$i]['time'].'</td></td>'; } echo '</table>'; } else { for ($i=0, $n=sizeof($this->messages); $i<$n; $i++) { if ($this->messages[$i]['class'] == $class) { echo '<div style="border-color:red;">'.$this->messages[$i]['class'].': '.$this->messages[$i]['time'].'</div>'; } } } } function reset() { $this->messages = array(); } function size($class) { $count = 0; for ($i=0, $n=sizeof($this->messages); $i<$n; $i++) { if ($this->messages[$i]['class'] == $class) { $count++; } } return $count; } } ?> <? //inclusion et création de la classe include('time_stack.php'); $timeStack = new timeStack; //ouverture d'un compteur de test $timeStack->open('test'); //attente pour le test sleep(4); //fermeture du compteure $timeStack->close('test'); //si le compteur test existe if ($messageStack->size('test') > 0) { //affichage du compteur de test $timeStack->display('test'); } // si il n'y a pas de paramètre dans la fonction display //elle affiche un tableau avec toutes les données $timeStack->display(); ?>

Conclusion :


désolé si le code n'est pas beaucoup commenté
je n'ai pas pris le temps de le faire

mais le script est facile à utiliser

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.