como obtener tiempo de ejecucion de un script PHP

1 comment By godie On 20 de February de 2011

compilando
Muchas veces queremos saber cual es la duracion un proceso en nuestros scripts de php, ya que a veces hay varias formas de hacer las cosas y queremos saber cual es la mas rapida,  lo que queremos hacer es medir el rendimiento de los scripts, saber cual es mas rapido y el que absorbe menos recursos, y asi tener mas contento al usuario final.

En php existen varias funciones para obtener el tiempo actual o mas bien el, año dia minuto segundo y microsegundo actual, una de esas funciones es microtime() que nos devuelve la fecha actual expresada en microsegundos y esa es la que utilizaremos.

Para obtener el tiempo de ejecucion de un es bien sencillo hacerlo el siguiente codigo nos lo demuestra:

1
2
3
4
5
6
7
8
9
10
11
<?php
     $tiempoInicial = microtime(TRUE); //obtenemos el tiempo en que inicio
      //Tu codigo aqui
      for ($i=0; $i < 1000000; $i++){
      }
 

    $tiempoFinal = microtime(TRUE); // tiempo en que termino
    echo $tiempoFinal - $tiempoInicial;  // tiempo que duro en segundos
       
    ?>

Tambien me cree una clase que hace eso pero se me hizo que esta demas, pero igual la dejare

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php

/**
 * Clase para obtener el tiempo de ejecucion de algunos scripts
 * cuando instancias la clase empieza a contar el tiempo
 * para saber cuanto tiempo lleva utilizas el getCurrentTime
 * para saber cuanto tiempo duro un script utilizar el metodo finish
 *
 * @author godie
 */

class Tiempo {
    private  $starTime;
    private  $finishTime;
    private  $totalTime;

    public function __construct() {
        $this->starTime = microtime(TRUE);
    }
   
    public function finish(){
        $this->finishTime = microtime(TRUE);
        $this->totalTime = $this->finishTime - $this->starTime;
        return $this->totalTime;
    }

    public function getCurrentTime(){
        return (microtime(TRUE) - $this->starTime);
    }

   
    public function reset(){
        $this->starTime = microtime(TRUE);
    }
   
    public function getStartTime(){
        return $this->starTime;
    }
       public function getFinishTime(){
        return $this->finishTime;
    }


}
?>

el mismo ejemplo utilizando la clase Tiempo.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
require_once 'Tiempo.php'
$tiempo = new Tiempo();
for($i=0; $i < 100000000; $i++){
           
        }
        echo "for: ". $tiempo->finish();
        $tiempo->reset();
        $i=0;
        while($i < 100000000){
            $i++;
        }
        echo '<br /> while: '. $tiempo->finish();
?>

Espero que a alguien le sirva, yo la utilize para medir cuanto tardaban 2 metodos que regresaban el mismo resultado pero haciendo cosas diferentes.

Te puede interesar:

One trackback

  1. Bitacoras.com (February 21, 2011)

    Información Bitacoras.com…

    Valora en Bitacoras.com: Muchas veces queremos saber cual es la duracion un proceso en nuestros scripts de php, ya que a veces hay varias formas de hacer las cosas y queremos saber cual es la mas rapida,  lo que queremos hacer es medir el rendimient……

Leave a Reply

Your email is never shared.

*