PHP Quick Profiler

RECU-0267 (Recurso Ficha Técnica)

Descripción

PHP Quick Profiler (PQP) es una interesante utilidad que registra y recopila información sobre los recursos que están siendo consumios por nuestra aplicación PHP. Visualmente impecable, la representación de los resultados ofrece datos sobre el tiempo de carga, la cantidad de consultas SQL, la memoria usada y la cantidad de archivos incluidos.

Ejemplo de uso

La forma más fácil de hacer que PQP trabaje con su propio código es incluir PhpQuickProfiler.php en la página que se desea controlar. Mientras que el código se ejecuta, los detalles están siendo registrados y analizados en PQP. Una vez que termine de ejecutarse el código, PQP termina, y muestra el resultado final en la pantalla.

La parte difícil es saber cuando finaliza la ejecución del código. En este ejemplo, se determina que el código ha terminado cuando se ejecuta el destructor del objeto padre. Así que una línea de tiempo sería:

  • El constructor declara una instancia de PhpQuickProfiler.
  • La página ejecuta todo el código necesario.
  • El destructor le dice al PhpQuickProfiler que la ejecución ha terminado
class ExampleLandingPage {

    private $profiler;
    private $db;

    public function __construct() {
        $this->profiler = new PhpQuickProfiler(PhpQuickProfiler::getMicroTime());
    }

    public function __destruct() {
        if($debugMode == true) $this->profiler->display($this->db);
    }

}

Se indica el log a registrar para indicar los valores a controlar:

Console::log($data);
Console::logError($exception);
Console::logMemory();
Console::logMemory($variable, $name);
Console::logSpeed();

Y se produce una salida parecida a la siguiente:

Ventajas e inconvenientes

Esta herramienta permite monitorizar el comportamiento de la aplicación de forma sencilla. Haciendo un buen uso de la misma se dispondrá de información acerca de los siguientes aspectos relevantes:

  • Presenta información sobre el tiempo de carga de los datos
  • Ofrece información sobre el tratamiento de las consultas SQL
  • Información sobre le uso de la memoria por los distintos procesos
  • El manejo de recursos por parte de la aplicación

Con este tipo de información resulta bastante sencillo detectar los cuellos de botella que afectan al rendimiento de forma significativa.

Requisitos e incompatibilidades

No existen restricciones significativas