Logo classes.scriptsphp.org PHP

go to nav bar

bench

Mesurez les performences de vos scripts

La classe PHP bench vous permet de faire des Benchmarks détaillés de vos Scripts. Vous avez également la possibilité de placer des points de contrôle intermédiaires, qui vous indiqueront en détail quelle partie de votre code PHP met plus ou moins de temps a s'exécuter.

Cette classe fonctionne aussi bien en PHP4 qu'en PHP5.

Les Méthodes

Exemples

  1. Exemple Minimal

La Source

<?php

/*
* Par fablezouave
* webmaster@scriptsphp.net
*
*/

class bench {

    var 
$start;
    var 
$decimals;
    var 
$Result;

    
/*
     Constructeur de la classe
     (initialisation des variables)
     */

    
function bench() {

        
$this->start 0;
        
// Nombre de chiffres après la virgule
        // pour l' affichage des résultats
        
$this->decimals 10;
        
$this->Result = array();
        }

    
/*
     Cette méthode marque le début du benchmark
     */

    
function start_bench() {
        
$this->start bench::get_microtime();
        }

    
/*
     Cette méthode marque la fin du benchmark
     */

    
function end_bench() {
        
$end bench::get_microtime() - $this->start;
        
$this->Result['End'] = $end;
        }


    
/*
     Cette méthode sert à récupérer
     des temps intermédiaires
     */

    
function add_flag($txt) {
        
$flag bench::get_microtime() - $this->start;
        
$this->Result[$txt] = $flag;
        }

    
/*
     Cette méthode retourne un temps exploitable.
     */

    
function get_microtime(){
        
$T explode(' 'microtime());
        
$time $T[1].substr($T[0], 1);
        return (float)
$time;
        }

    
/*
     Cette méthode retourne le nombre $value
     formaté avec n chiffres après la virgule
     */

    
function format($value$n=0) {
        
$dec $n==$this->decimals $n;
        return 
number_format((float)$value$dec);
        }

    
/*
     Cette méthode retourne le résultat des benchs
     sous la forme d' un tableau HTML.
     */

    
function return_result() {
        
$prec  0;
        
$inter 0;

        
$ret  '<table bordercolor="black" border="1">';
        
$ret .= '<tr bgcolor="#cccccc">';
        
$ret .= '<td>Evénement</td>';
        
$ret .= '<td>Temps depuis le début</td>';
        
$ret .= '<td>Temps depuis le dernier flag</td>';
        
$ret .= '<td> - Pourcentage - </td>';
        
$ret .= '</tr>';

        foreach(
$this->Result as $key => $val) {
            
$inter $val $prec;
            
$prec $val;
            
$percent = ($inter/$this->Result['End'])*100;

            
$ret .= '<tr>';
            
$ret .= '<td>'.$key.'</td>';
            
$ret .= '<td>'.bench::format($val).' s</td>';
            
$ret .= '<td>'.bench::format($inter).' s</td>';
            
$ret .= '<td>'.bench::format($percent2).' % </td>';
            
$ret .= '</tr>';
            }

        
$ret .= '</table>';

        return 
$ret;
        }

    
/*
     Cette méthode retourne un simple résultat
     correspondant au temps passé entre
     start_bench() et end_bench()
     */

    
function return_simple_result() {
        
$r bench::format($this->Result['End']) ;
        
$ret "Page générée en $r secondes.";
        return 
$ret;
        }


    } 
// end class

?>

Merci de ne pas suivre ce lien emails.

0.0475s | «»
PHP powered