Perfilado de PHP con Xdebug
Active el perfilado de Xdebug y analice la salida de callgrind para encontrar funciones lentas.
Perfilado de PHP con Xdebug es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué es Xdebug?
Xdebug es una extensión de PHP que proporciona funciones de depuración, cobertura de código y creación de perfiles. El perfilador registra cuánto tarda cada llamada a función y cuántas veces se realiza.
Instalación de Xdebug
Instálelo mediante PECL o un gestor de paquetes.
# Via PECL:
$ pecl install xdebug
# Via apt:
$ apt install php-xdebug
# Verify:
$ php -v | grep XdebugActivación del perfilador
Configure Xdebug en php.ini para activar la creación de perfiles.
# php.ini
[xdebug]
zend_extension=xdebug.so
xdebug.mode=profile
xdebug.output_dir=/tmp/xdebug
xdebug.profiler_output_name=cachegrind.out.%tPerfilado basado en activadores
En lugar de crear un perfil de cada solicitud, utilice un activador para hacerlo bajo demanda.
# php.ini
xdebug.mode=profile
xdebug.start_with_request=trigger
# Trigger via query parameter or cookie:
curl "https://example.com/?XDEBUG_PROFILE=1"Salida de Callgrind
Xdebug escribe un archivo cachegrind.out.*. Este formato se lee con visualizadores de perfiles.
Análisis con KCachegrind / QCachegrind
Abra el archivo callgrind en KCachegrind (Linux) o QCachegrind (macOS/Windows) para ver el número de llamadas a funciones, el tiempo total, el tiempo propio y el árbol de llamadas.
Análisis con WebGrind
WebGrind es un visor de callgrind basado en el navegador, más fácil de configurar que una herramienta de escritorio.
$ docker run -p 8080:80 jokkedk/webgrind -v /tmp/xdebug:/tmpLectura de la salida del perfilador
Busque las funciones con el mayor "Inclusive Cost" (tiempo total, incluidas las funciones llamadas) frente a "Self Cost" (tiempo empleado únicamente en el cuerpo de la función). El coste propio revela el cuello de botella real.
Cuellos de botella habituales
Hallazgos habituales: consultas N+1 a la base de datos, expresiones regulares ineficientes, llamadas redundantes a API, relaciones Eloquent sin optimizar y renderización costosa de vistas.
Perfilado frente a depuración
El perfilado mide el rendimiento (tiempos y número de llamadas). La depuración (también una función de Xdebug) pausa la ejecución en los puntos de interrupción para inspeccionar el código. Utilice modos independientes de Xdebug.
Blackfire como alternativa
Blackfire.io es una herramienta comercial de creación de perfiles con una interfaz pulida, integración con CI y aserciones de rendimiento. En entornos de equipo, se prefiere frente al perfilado directo con Xdebug.
Resumen
Active el modo de perfilado de Xdebug en php.ini, active una solicitud y abra el archivo callgrind en KCachegrind o WebGrind. Concéntrese en las funciones con mayor coste inclusivo y propio para encontrar cuellos de botella.
Comprobación rápida
¿Qué significa "self cost" en un informe de perfilado?
Preguntas frecuentes
¿La lección «Perfilado de PHP con Xdebug» es gratis?
Sí — el texto completo de «Perfilado de PHP con Xdebug» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Perfilado de PHP con Xdebug»?
Active el perfilado de Xdebug y analice la salida de callgrind para encontrar funciones lentas. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar PHP Academy?
No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Perfilado de PHP con Xdebug»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de PHP Academy?
Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Perfilado de PHP con Xdebug
- OPcache: almacenamiento en caché de bytecode
- Optimización de consultas de base de datos
- Gestión de memoria y consejos de rendimiento