Pregunta

Me gustaría encontrar una manera de determinar cuánto tiempo tarda en ejecutarse cada función en PHP y cada archivo en PHP. Tengo una antigua aplicación de PHP heredada que estoy tratando de encontrar " ásperos puntos " Me gustaría localizar qué rutinas y páginas tardan mucho tiempo en cargarse, objetivamente.

¿Hay alguna herramienta prefabricada que permita esto, o estoy atascado usando microtime y construyendo mi propio marco de perfiles?

¿Fue útil?

Solución

En realidad, he hecho algunos trabajos de optimización la semana pasada. XDebug es, de hecho, el camino a seguir.

Simplemente habilítelo como una extensión (por alguna razón no funcionaría con ze_extension en mi máquina Windows), configure su php.ini con xdebug.profiler_enable_trigger = Activado y llame a sus URL normales con XDEBUG_PROFILE = 1 como un get o una variable de publicación para perfilar esa misma solicitud. ¡No hay nada más fácil!

Además, realmente puedo recomendar webgrind , un Google Summer Of Code basado en la web (php) proyecto que puede leer y analizar sus archivos de salida de depuración!

Otros consejos

Aquí hay un buen consejo.

Cuando use XDebug para crear un perfil de PHP, configure profiler_trigger y use esto en un marcador para activar el generador de perfiles de XDebug;)

javascript:if(document.URL.indexOf('XDEBUG_PROFILE')<1){var%20sep=document.URL.indexOf('?');sep%20=%20(sep<1)?'?':'&';window.location.href=document.URL+sep+'XDEBUG_PROFILE';}

eche un vistazo a xdebug , que permite un análisis detallado. Y aquí hay una explicación de cómo usar xdebug.

  

El Perfilador de Xdebug es una herramienta poderosa   eso te da la capacidad de analizar   su código PHP y determinar   cuellos de botella o en general ver qué   partes de su código son lentas y podrían   Usa un impulso de velocidad. El perfilador en   Xdebug 2 genera información de perfiles.   en forma de caché compatible   archivo.

Felicitaciones a SchizoDuckie para mencionando Webgrind . Esta es la primera vez que escucho de eso. Muy útil (+1).

De lo contrario, puede usar kcachegrind en linux o su derivada menor wincachegrind . Ambas aplicaciones leerán los archivos de salida del generador de perfiles de xdebug y los resumirán para su placer visual.

Una vez vi una proyección de pantalla para Zend Core . Se ve bastante bien, pero en realidad cuesta dinero, no sé si eso es un problema para ti.

XDebug está bien, pero no es tan fácil de usar o configurar IMO.

El generador de perfiles integrado en Zend Studio es muy fácil de usar. Simplemente presiona un botón en la barra de herramientas del navegador y BAM tiene su perfil de código. Tal vez no sea tan profundo como un volcado de CacheGrind, pero siempre ha sido lo suficientemente bueno para mí.

Usted también necesita configurar la plataforma Zend, pero eso es sencillo y gratuito para el uso de desarrollo; sin embargo, aún tendrá que pagar la licencia de Zend Studio.

Las funciones de creación de perfiles de xdebug son bastante buenas. Si consigues que la salida se guarde en formato valgrind, puedes usar algo como KCachegrind o Wincachegrind para ver el gráfico de llamadas y, si eres una persona visual, trabaja más fácilmente lo que está sucediendo.

Además de tener capacidades de depuración en tiempo real muy poderosas, PhpED de NuSphere (www.nusphere.com) tiene un generador de perfiles integrado que se puede ejecutar con un solo clic desde dentro del IDE.

Si instala la extensión xdebug, puede configurarlo para exportar perfiles de ejecución, que puede leer en WinCacheGrind (en Windows). No puedo recordar el nombre de la aplicación que lee los archivos en Linux.

La solución más fácil es usar Zend Profiler, no necesita la plataforma Zend para usar, puede ejecutarlo directamente desde su navegador, es bastante preciso y tiene la mayoría de las funciones que necesita y está integrado en Zend Studio

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top