jueves, 16 de enero de 2014

Profiling Drupal 7 con XHProf y Apache2


¿Problemas de rendimiento en Drupal?¿Qué sucede y dónde sucede? Para responder a la segunda pregunta existen las herramientas de "profiling", que nos ayudarán a identificar las funciones que más recursos están consumiendo, el número de llamadas a cada función e infinidad de información a mayores. Si desarrollas con Drupal no puedes prescindir de XHProf.

XHProf es una extensión PECL desarrollada por el equipo de ingeniería de Facebook como alternativa a XDebug que sirve para hacer profiling de aplicaciones PHP.

Su instalación en un entorno Linux + Drupal es muy sencilla.

Instalamos la extensión vía PECL

    pear channel-update pear.php.net
    sudo apt-get install php5-common graphviz
    sudo pecl config-set preferred_state beta
    sudo pecl install xhprof

Creamos el directorio temporal para almacenar los datos. En mi caso :


mkdir /var/tmp/xhprof
chmod 777 /var/tmp/xhprof

Habilitamos la extensión creando el fichero /etc/php5/apache2/conf.d/xhprof.ini con el contenido

[xhprof]
extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof.conf"

Creamos un "alias" para construir la url de acceso al output de XHProf.

alias /xhprof_html "/usr/share/php/xhprof_html"

Reiniciamos Apache2

apache2ctl -t
service apache2 restart

La integración con Drupal es muy sencilla y se puede realizar directamente desde Drush seguiendo estos pasos:

drush dl devel
drush en devel
drush vset devel_xhprof_enabled 1
drush vset devel_xhprof_directory "/usr/share/php"
drush vset devel_xhprof_url "/xprof_html"

Si pedimos en nuestro navegador la url http://tu.sitio.local/xhprof_html obtendremos todos los datos del profiling.



Bonus: