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
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.