En estos dias tuve que hacer profiling sobre una aplicación y encontre muy útil la herramienta de facebook llamada xhprof, que permite ver el rendimiento de nuestras aplicaciones en php.
Dejo aqui para todos los que les sea util los pasos para instalar y configurar xhprof, para ver el rendimiento de nuestras aplicaciones, los mismos son para ubuntu.
Primero nos bajamos de aqui el paquete de xhprof , luego vamos a la consola y ejecutamos uno a uno los siguientes comandos.
tar -xvf xhprof-0.9.2.tgz
cd xhprof-0.9.2/extension/
phpize
./configure --with-php-config=/usr/bin/php-config5
make
make test
sudo make install
Una aclaracion: Cuando lleguen a la parte de “phpize” si les dice que no tienen el comando señal que no tienen instalado php5-dev. Se instala de la siguiente manera:
sudo apt-get install php5-dev
Una vez instado xhprof tenemos que agregar las configuraciones en el php.ini. Al final del archivo copiamos las siguientes lineas:
[xhprof]
extension=xhprof.so
;
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
;
xhprof.output_dir=/tmp/xhprof
Cómo usar xhprof
Particularmente yo tuve que hacer profiling de una aplicacion en drupal 6, con lo cual unicamente basto con instalar este modulo, activarlo y configurar los paths que queria que se haga profiling.
El mismo ya nos da una UI para poder ver cada uno de los requests y ver los datos bien detallados. Cabe destacar tambien, que en la version 7 de Drupal, este modulo es ahora parte del modulo Devel
Si quieren usar xhprof para sus propias aplicaciones deberan agregar esta linea al comienzo del script
xhprof_enable();
Y Luego al final del mismo
$data = xhprof_disable();
$XHPROF_ROOT = '/home/testing/Downloads/xhprof-0.9.2';
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default();
// Save the run under a namespace "xhprof".
$run_id = $xhprof_runs->save_run($data, "xhprof");
Existe tambien una herramienta llamada XHGUI que nos permite guardar cada ejecución del xhprof en la base de datos, para luego verla en una GUI muy bonita, dejo el link para quienes quieran utilizarla.