begin process at 2012 02 15 13:55:49
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > CLASSE DE CALCUL DE TEMPS D'ÉXECUTION

CLASSE DE CALCUL DE TEMPS D'ÉXECUTION


 Information sur la source

 Description

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

  • <?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();
  • ?>
<?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


 Sources de la même categorie

Source avec Zip Source avec une capture GENERATEUR D'ONGLET DE NAVIGATION PHP par pos123
FORMATER UN LIEN YOUTUBE, DAILYMOTION OU VIMEO POUR L'UTILIS... par kgb93
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000
Source avec Zip Source avec une capture GENERATEUR DE BOUTONS DE PARTAGES POUR RESEAUX SOCIAUX par cod57

 Sources en rapport avec celle ci

Source avec Zip TESTS UNITAIRES par pierreSabatier
Source avec une capture CLASSE CONSTRUCTEUR DE TABLEAU HTML EN PHP (REVU ET CORRIGÉ) par demonstorm
CLASSE MYSQL UTILISANT LES FONCTIONS PDO par Vince66
EXECUTER UN SCRIPT LONGUE DURÉE SANS LIMITATION DU SERVEUR par MadM@tt
TEMPS D'EXECUTION par GillesWebmaster

Commentaires et avis

Commentaire de kankrelune le 27/08/2006 14:40:17

Salut...

C'est pas mal mais en cas de bench multiple c'est chiant de devoir créer un nom pour l'index... perso j'utilise un index numérique qui s'incrémente à chaque nouvelle entrée l'index étant renvoyé par la méthode de création du bench... ce qui donne... .. .

$benchId = $bench->sart();

... le code ...

$bench->stop($benchId);

C'est pas grand chose mais je trouve plus simple... comme ça tu peux retrouver un bench précis grace à l'id généré... par contre dans ton cas je trouve que tu te prend la tête pour retrouver le bench en cours...

pour quoi ne pas faire...

function open($class)
{
   if(!isset($this->messages[$class]))
      $this->messages[$class] = array_sum(explode(' ', microtime()));
         else
             ... on consigne une erreur le bench $class existant déja ...
}
    
function close($class)
{
    if(isset($this->messages[$class]))
       $this->messages[$class]= round(array_sum(explode(' ', microtime())) - $this->messages[$class], 4);
          else
             ... on consigne une erreur le bench $class n'existant pas ...
}

En même temps tu gère ça avec le nom des class ou code benché donc y a pas trop d'alternative me dira tu... .. .

@ tchaOo°

Commentaire de FhX le 27/08/2006 21:21:32

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

http://www.phpcs.com/codes/PHP5-CLASSE-BENCHMARK_35497.aspx

Petit mais costaud :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

temps d'execution d'une requete [ par michong ] salut a tous je voudrais avoir le code pour calculer le temps d'execution d'une requete merci a tous temps d'execution de script max_execution_time [ par vincentforce ] Bonjour,J'ai un soucis au niveau du temps d'execution de script sur lequel, apparemment je n'ai aucun contr&#244;le : dans le fichier php.ini, la vari Temps d'execution [ par xactise ] Bonjours a vous tous une question me tarrode l'esprit (encore vous dites vous) et oui :)Voila j'ai lu dans diferent post (forum , commentaires de sour Utiliser une classe template et une autre en meme temps... [ par big_mama ] Bonjour a tous.Mon probleme : Je suis entrain de me faire un pti site, pour cela j'utilise deux classe.La premiere gere les template et la seconde le Execution en meme temps de plusieurs fonctions [ par shefiu ] Bonjour, J'aurais voulu savoir si c'était possible de lancer plusieurs fonctions en meme temps en php. J'ai une fonction et je voudrais qu'elle tourne calcller le temps d'execution via xmlhttprequest [ par el_bassir ] S.V.P:&nbsp;&nbsp; est ce qu'il ya quelqu'un qui connait un moyen de calculer le temps d'execution&nbsp; d'un script par l'objet XMLHTTPREQUEST?&nbsp; Pb temps execution et explorer php [ par elravage ] Voila, j'ai pris un explorateur sur ce site, je l'essai a mon stage et il me parait super. Le hic, c'est que l'explorateur doit voir ce qu'il y a dans Execution d'un script en arrière-plan [ par ZeroCool007 ] Salut, Je cherche &#224; &#233;x&#233;cuter un script php en arri&#232;re-plan pour ne pas bloquer l'utilisateur dans la navigation. Il s'agit d'un un simulateur de clic [ par tikaprod ] bonjour, je suis &#224; la recherche d'un simulateur de clic tr&#232;s particulier voici mes d&#233;sirs pouvoir simuler un clic de souris sous un au Urgent @ barre URL [ par atchoumen ] Bonjour a tous,je n'&nbsp;ai pas reussi a trouver la reponse sur le net ou dans ce forum alors je compte sur vous les dvpeurs. En faite je voudrais fa


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,930 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales