En este artículo explico la configuración que yo utilizo, aunque hay muchas más opciones.
En primer lugar, debemos entender cómo funciona esta manera de medir el rendimiento:
Hay dos maneras de hacer esto: dejar el servidor preparado para que siempre escriba los ficheros de profiling o utilizar una cookie o un parámetro get o post para activarlo o desactivarlo.
Si queremos que siempre nos genere los ficheros, tenemos que asegurarnos de que nuestro fichero de configuración de php tiene estas líneas para activar el profiler:
xdebug.profiler_enable = 1;
Si quisiéramos poder activar o desactivar el profiler con una cookie con el valor XDEBUG_PROFILE tendríamos que poner esto:
xdebug.profiler_enable = 0;
xdebug.profiler_enable_trigger = 1;
Como todo, cada uno tendrá sus preferencias. Lo que si te aconsejo es que si quieres dejarlo activado y despreocuparte de la cookie, tengas un mecanismo para borrar los ficheros que generas o comentes y descomentes la línea que activa el profiler cuando lo necesites. Dudo mucho que te interese generar y guardar la información de TODAS las ejecuciones que hagas en tu local.
Otra información que puedes meter es la que indica dónde hay que guardar toda la información.
xdebug.profiler_output_dir = /tmp/xdebug/profiler
xdebug.profiler_output_name = cachegrind.out.%p
Estos dos parámetros tienen valores por defecto así que a lo mejor no los queremos personalizar. Por defecto nos va a poner todos los ficheros en /tmp
Mírate al final la sección de problemas comunes a propósito de esto. Ahí te cuento un problema que he tenido yo, y como soy una persona común, pues supongo que es un problema común.
Vamos a ver cómo se analizan los datos con PHPstorm, hay más maneras pero aquí voy a contar cómo analizarlo con PHPstorm porque es lo que yo uso y de lo que puedo hablar.
En realidad solo hay que buscar la herramienta que ya tiene PHPstorm para esto.
Hay que saber donde estamos metiendo los ficheros, pero por lo demás es sencillo.
Una vez seleccionamos el fichero a estudiar, tenemos información relevante sobre cómo está funcionando nuestra aplicación.
Configurando esto, es posible que no encuentres los ficheros de profiling en /tmp tal y como los has configurado. Eso puede pasar (a mi me ha pasado) porque nuestro proceso utiliza PrivateTmp. Y para resumir lo que pasa, es que se crea un directorio dentro de temporales con un hash y se meten ahí todos los temporales, de manera que tendríamos que currarnos un poco la búsqueda.
Yo lo que he hecho es indicar que me ponga los ficheros dentro de /var/log/xdebug y he metido un comando para que limpie todos los ficheros al arrancar en el /etc/rc.local
Add new comment