<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Pensando en Red &#187; xdebug</title> <atom:link href="http://pensandoenred.com/tag/xdebug/feed/" rel="self" type="application/rss+xml" /><link>http://pensandoenred.com</link> <description>nada es tan fácil como parece serlo</description> <lastBuildDate>Mon, 02 Jan 2012 08:35:01 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Optimiza tu desarrollo web en php con KCachegrind &#8211; PHP Profiler con Xdebug</title><link>http://pensandoenred.com/2009/06/24/optimiza-tu-desarrollo-web-en-php-con-kcachegrind-php-profiler-con-xdebug/</link> <comments>http://pensandoenred.com/2009/06/24/optimiza-tu-desarrollo-web-en-php-con-kcachegrind-php-profiler-con-xdebug/#comments</comments> <pubDate>Wed, 24 Jun 2009 19:01:43 +0000</pubDate> <dc:creator>mariotux</dc:creator> <category><![CDATA[Configuraciones]]></category> <category><![CDATA[php]]></category> <category><![CDATA[Software Libre]]></category> <category><![CDATA[gnome]]></category> <category><![CDATA[kcachegrind]]></category> <category><![CDATA[php5-xdebug]]></category> <category><![CDATA[Ubuntu]]></category> <category><![CDATA[xdebug]]></category> <guid
isPermaLink="false">http://www.pensandoenred.com/?p=387</guid> <description><![CDATA[La descripción encontrada en wikipedia de "profiling": Un "profiler" es una herramienta de análisis de performance que mide el comportamiento del programa mientras este está corriendo, particularmente la frecuencia y duración de las llamadas a funciones. La salida es un rastro (stream) de eventos o un sumario estático de los eventos observados (un "profile", perfil [...]]]></description> <content:encoded><![CDATA[<p>La descripción encontrada en <a
href="http://es.wikipedia.org/wiki/Profiling" target="_blank">wikipedia de "profiling"</a>:</p><blockquote><p>Un "profiler" es una herramienta de análisis de performance que mide el comportamiento del programa mientras este está corriendo, particularmente la frecuencia y duración de las llamadas a funciones. La salida es un rastro (stream) de eventos o un sumario estático de los eventos observados (un "profile", perfil o reseña). Los profilers usan una amplia variedad de técnicas para recolectar datos, incluyendo interrupciones por hardware, instrumentos de código, ganchos (hooks) del sistema operativo.</p><p>El uso de profilers es usado en el proceso de ingeniería de performance. Un profile generalmente es realizado relacionado la posición del código fuente donde suceden los eventos y el tamaño de las medidas de los datos que es proporcional al tamaño del código del programa. En contraste, el tamaño de un rastro es proporcional al tiempo de ejecución de un programa, haciéndolo impracticable. Para programas secuenciales, un profile, es generalmente suficiente, pero los problemas de pefrormance en programas paralelos (que esperan mensajes o temas de sincronismo) generalmente depende del tiempo de relación de los eventos, de esta forma requieren la localización total para tener un entendimiento del problema</p></blockquote><p>Para ello tenemos que instalar php5-xdebug:</p><blockquote><p>sudo aptitude install php5-xdebug</p></blockquote><p>Una vez instalado el módulo Xdebug tenemos que editar su fichero de configuración que encontraremos en:</p><blockquote><p>/etc/php5/apache2/conf.d/<strong>xdebug.ini</strong></p></blockquote><p>En ese fichero agregaremos las siguientes lineas:</p><p>xdebug.profiler_enabled = 1<br
/> xdebug.profiler_output_dir = <em>(path de salida) "/home/usuario/tmp/"<br
/> </em>xdebug.profiler_output_name = cachegrind.out. %R</p><p>Tras reiniciar el apache comprobaremos en un fichero php el resultado de <em>phpinfo() </em>para comprobar que el modulo xdebug está operativo.</p><p>Más parámetros de configuración: <a
href="http://www.xdebug.org/docs/profiler" target="_blank">xdebug profiler</a></p><p>Al poner %R en el nombre de salida conseguimos que si estamos analizando el domonio localhost guarde los ficheros como: cachegrind.out.localhost</p><p>Para conocer más opciones de parametrización de xdebug.profiler_output_name en: <a
href="http://www.xdebug.org/docs/all_settings#trace_output_name" target="_blank">http://www.xdebug.org/docs/all_settings#trace_output_name</a></p><p>De esta manera conseguimos que se vayan creando los ficheros que después leeremos con <a
href="http://kcachegrind.sourceforge.net/html/Home.html" target="_blank">KCachegrind</a>.</p><p>Instalamos Kcachegrind:</p><blockquote><p>sudo aptitude kcachegrind kcachegrind-converters</p></blockquote><p>Ahora solo tendremos que lanzar el programa Kcachegrind y abrir el fichero cachegrind.out.localhost. En el mismo directorio encontraremos más ficheros pero tenemos que abrir el fichero principal que es el que no tiene concatenado a su nombre con un punto una secuencia numérica.</p><p
style="text-align: center;"><img
style="float:right" title="kcachegrindkde" src="../media/2009/06/kcachegrindkde-300x214.png" alt="kcachegrindkde" width="300" height="214" /></p><p>El programa analizará los logs de xdebug y nos lo mostrará con una interfaz gráfica intuitiva y no muy complicada de entender:</p><p>De esta manera podremos analizar si nuestra aplicación web pierde mucho tiempo en algún proceso en el que no hayamos reparado con anterioridad, el uso de memoria y las llamadas que se realizan a funciones y/o métodos.</p><blockquote><p>Esta configuración está pensada para probarla en la máquina local de desarrollo, en ese caso en el path de salida que hemos configurado en el xdebug.ini tenemos que asignarle los permisos necesarios para que el usuario de apache www-data pueda escribir los logs.</p></blockquote><p>Una vez finalizado su uso, es recomendable desactivar el profile de xdebug para que no nos sature de logs a los que no vamos a hacer caso.</p><p>Aunque el pantallazo es de un entorno KDE esta configuración y software se ha realizado en: Ubuntu 9.04 Gnome.</p><p>Si tu entorno de desarrollo es Windows, también puedes activar el módulo php_xdebug.dll en tu php.ini y seguir los mismos parámetros de configuración en tu fichero php.ini. Como herramienta para examinar los logs del profile xdebug puedes utilizar <a
href="http://sourceforge.net/projects/wincachegrind/" target="_blank">WinCacheGrind</a>.</p><p>Espero que os sea de utilidad, si conocéis alguna herramienta y/o utilidad que os facilite la tarea de realizar aplicaciones ligeras agradecería el comentario.</p> ]]></content:encoded> <wfw:commentRss>http://pensandoenred.com/2009/06/24/optimiza-tu-desarrollo-web-en-php-con-kcachegrind-php-profiler-con-xdebug/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
