CodeIgniter User Guide Version 1.6.1


Clase de Puntos de Referencia

CodeIgniter tiene una clase de punto de referencia que está siempre activa, permitiendo que se calcule la diferencia de tiempo entre dos puntos que sean marcados.

Nota:Esta clase es inicializada automáticamente por el sistema, por esto, no hay necesidad de hacerlo manualmente.

Adicionalmente, el punto de referencia siempre es iniciado cuando el framework es invocado, y es finalizado por la clase de salida(ouput) justo antes de que se envie la vista final al navegador, permitiendo que sea muy precisa la medicion del tiempo de ejecucion de todo el sistema para que sea mostrado.

Tabla de Contenidos

Usando la clase Puntos de referencia

La clase Puntos de referencia puede ser usado con tus controladores, vistas, o tus Modelos. El proceso para usarlo es este:

  1. Marcando un punto inicial
  2. Marcando un punto final
  3. Ejecuta la funcion "elapsed time"(tiempo transcurrido) para ver los resultados

Aqui un ejemplo utilizando codigo real:

$this->benchmark->mark('code_start');

// Algún codigo por aquí

$this->benchmark->mark('code_end');

echo $this->benchmark->elapsed_time('code_start', 'code_end');

Nota:Las Las palabras "code_start" y "code_end" son arbitrarios. Son solamente palabras que se usan para setear dos marcas. Puedes usar cual cualquier palabra que quieras, y puedes poner multiples juegos de marcas. Considere este ejemplo:

$this->benchmark->mark('perro');

// Algun codigo aqui

$this->benchmark->mark('gato');

// Más codigo aqui

$this->benchmark->mark('pajaro');

echo $this->benchmark->elapsed_time('perro', 'gato');
echo $this->benchmark->elapsed_time('gato', 'pajaro');
echo $this->benchmark->elapsed_time('perro', 'pajaro');

Perfilando tus Puntos de Referencia

Si quieres hacer disponible los datos de tus puntos de referencia disponible para tu Profiler todos los puntos que marques deben ser seteado en pares, y cada punto de marca debe finalizar con _start y _end. Cada par de puntos deben ser llamados de igual forma. Por ejemplo:

$this->benchmark->mark('mi_marca_start');

// Some code happens here...

$this->benchmark->mark('mi_marca_end');

$this->benchmark->mark('otra_marca_start');

// Agun codigo por aqui...

$this->benchmark->mark('otra_marca_end');

Por favor lea la Pagina Profiler para mas informacion.

Desplegando el tiempo total de ejecucion

Si quieres desplegar el tiempo total transcurrido desde el momento en el que CodeIgniter comienza hasta el momento en el que la salida es enviada al navegador, simplemente ubica esto en una de las vistas de tu plantilla:

<?=$this->benchmark->elapsed_time();?>

Ud. se dara cuenta de que es la misma funcion usada en los ejemplos anteriores, para calcular el tiempo entre dos puntos, excepto que no estas usando ningun parametro. Cuando el parametro esta ausente, CodeIgniter no detiene el punto de referencia ahsta justo antes de que la salida final sea enviada al navegador. No importa donde se use la llamada a la funcion, el temporizador continuara corriedon hasta el final.

Una forma alternativa de mostrar el tiempo transcurrido en tus archivos de vista es usar esta pseudo-variable, si prefieres no usar el PHP puro:

0.1724

Nota:Si quieres algo de referencia en tus funciones de controlador deberas setear tus propios puntos de inicio/fin.

Desplegando el consumo de memoria

Si tu instalacion PHP esta configurada con el --enable-memory-limit, puedes desplegar la cantidad de memoria utilizada por sistema entero usando el siguiente codigo en tu archivo vista:

<?=$this->benchmark->memory_usage();?>

Nota:Esta funcion puede ser solamente usad en los archivos vista. El consumo de memoria reflejara el uso total de memoria por la aplicacion completa.

Una forma alternativa de mostrar el uso de memoria en tus archivos de vista, es usar esta pseudo-variable, si prefieres no usar el PHP puro:

0