SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Herramientas para la medición del
      desempeño en PHP

       Carlos Nacianceno
Quién soy?
                      • PHP desde hace 12
                        años

                      • Zend Certified
                        Engineer
  Carlos Nacianceno
                      • Instructor de cursos
                        Zend

                      • El Taller Web
Introducción
• Cuando se desarrolla, pocas veces se toma
  en cuenta los recursos utilizados por las
  aplicaciones

• Se ignora si un script consume muchos
  recursos y más concretamente en que
  procesos.

• No hay conocimiento de herramientas que
  nos ayuden a determinar tales cosas.
¿Qué es el desempeño?
• La cantidad de trabajo o procesos que se
  ejecuta en comparación con los recursos
  disponibles.
  – Que tanto hacemos con lo que tenemos


• Alto/Bajo desempeño
  – Aprovechamiento de los recursos, no al tamaño
Recursos
• Recursos para una aplicación web
  – Procesamiento
  – Memoria
  – Ancho de Banda


• Tradicionalmente
  – Limitados
  – Costosos
  – Lenta disposición
Desempeño
• Generalmente el buen desempeño puede
  reconocerse por:
  –   Baja utilización de los recursos
  –   Corto tiempo de respuesta
  –   Transmisión de datos eficiente
  –   Alta disponibilidad



  Para el usuario es la rapidez con la que
  ve los datos
Benchmarking
• Medir comparativamente

• Punto de vista externo de nuestra aplicación
  – Peticiones HTTP
  – Web server
  –
• Comparaciones justas!!!
Benchmarking
• Medir
  – Si determinada URL tiene problemas
  – Un cambio en el código
  – Cambio en X, o Y


• Obtendremos información concreta con
  medidas de como se ve desde afuera
  nuestro sitio o aplicación.
Apache Benchmarking
• Saber cómo se esta desempeñando el Web
  server
  – Y la aplicación que esta sirviendo


• Herramienta CLI

• Incluida con cualquier instalación de Apache
Apache Benchmarking
• Ejecución



• Donde
  – -n es el número de peticiones que ab realizará en
    esta sesión
  – -c es el número de peticiones concurrentes
Apache Benchmarking
Apache Benchmarking
Siege
• Load Testing y Benchmarking HTTP

• Permite probar aplicaciones bajo carga
  simulada

• Número de usuarios simulados configurable

• Incluido en algunas distro Linux
   – http://www.joedog.org/pub/siege/
Siege
Siege

• Parte de los resultados que nos entrega son:
   – Transacciones totales
   – Tiempo total del test
   – Tiempo promedio de respuesta para cada
     usuario
   – Concurrencia
   – Transacciones exitosas
Siege
Perfilado
• Recolección de información sobre la
  aplicación durante su ejecución para un
  análisis.

• Identifica cuellos de botella

• Determinar en que punto de la ejecución:
  – Se uso más memoria
  – Tomó más tiempo en ejecutar
Zend Debugger
• Extensión PHP

• Freeware instalable a stack PHP prexistente

• Controla la ejecución y obtiene información

• Informes detallados de el desempeño de la
  ejecución

• Perfilado bajo demanda
  – Local
  – Remoto
Zend Debugger
• Cliente (IDE) hace una petición al Servidor
  1. Zend Debugger se activa y controla la ejecución
  2. Captura la información detallada de la misma
  3. Regresa los resultados al cliente
     •   Gráfica
     •   Estadísticas de ejecución
     •   Flujo de ejecución
     •   Cobertura de código
Zend Debugger
Xdebug
• Extensión PHP

• Open Source
  – PECL


• Registra lo ocurrido en la ejecución y genera
  esos registros para su análisis

• Perfilado encendido o apagado
Xdebug
• Se activa el perfilador de Xdebug
  1. xdebug.profiler_enable a 1
     •    xdebug.profiler_enable_trigger
  2. xdebug.profiler_output_dir
  3. Captura información de la ejecución
  4. Guarda resultados
     •   Gráfica ( KcheGrind, WinGrind, WebGrind )
     •   Estadísticas de ejecución
     •   Flujo de ejecución
     •   Cobertura de código
Xdebug
Xhprof
• Extensión PHP

• Facebook (PECL)

• Más ligero que Xdebug
  – Compatible con KcheGrind y similares


• Modificar cada archivo PHP
  – xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
  – $xhprof_data = xhprof_disable();
Optimización prematura
• Optimizar el código antes de saber donde
  están los cuellos de botella.

• Hacer cambios para intentar que la
  aplicación “sea más rápida”
  – Estos cambios resultan costosos en tiempo
  – “Tunear” el web server o sistema operativo sin
    “tunear” primero la aplicación
  – Simplemente escalar la plataforma con más
    recursos
Preguntas?
Gracias




                @igormx

               @eltallerweb
          http://eltallerweb.com

Mais conteúdo relacionado

Semelhante a Herramientas para la medicion de desempeño PHPConMX 2012

Webinario mejorando el desempeño con zend server
Webinario   mejorando el desempeño con zend serverWebinario   mejorando el desempeño con zend server
Webinario mejorando el desempeño con zend serverEl Taller Web
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas.. ..
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJSRodrigo Pimentel
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Datannakasone
 
Mantenimiento y mejora continua de la performance de las aplicaciones
Mantenimiento y mejora continua de la performance de las aplicacionesMantenimiento y mejora continua de la performance de las aplicaciones
Mantenimiento y mejora continua de la performance de las aplicacionesAbstracta
 
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...Denodo
 
Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...
Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...
Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...RootedCON
 
Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress Dani Reguera Bakhache
 
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria
 
Adaptacion y mejora continua de la performance de las aplicaciones
Adaptacion y mejora continua de la performance de las aplicacionesAdaptacion y mejora continua de la performance de las aplicaciones
Adaptacion y mejora continua de la performance de las aplicacionesGeneXus
 
Clase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptClase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptrogergrefa1
 
Azure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo realAzure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo realSoftware Guru
 
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesSecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesJose Luis Soria
 

Semelhante a Herramientas para la medicion de desempeño PHPConMX 2012 (20)

Webinario mejorando el desempeño con zend server
Webinario   mejorando el desempeño con zend serverWebinario   mejorando el desempeño con zend server
Webinario mejorando el desempeño con zend server
 
Flujo de desarrollo para drupal (PFC)
Flujo de desarrollo para drupal (PFC)Flujo de desarrollo para drupal (PFC)
Flujo de desarrollo para drupal (PFC)
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
PresentacióN Tesis
PresentacióN TesisPresentacióN Tesis
PresentacióN Tesis
 
Clase 11
Clase 11Clase 11
Clase 11
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Data
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
Mantenimiento y mejora continua de la performance de las aplicaciones
Mantenimiento y mejora continua de la performance de las aplicacionesMantenimiento y mejora continua de la performance de las aplicaciones
Mantenimiento y mejora continua de la performance de las aplicaciones
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Html5
Html5Html5
Html5
 
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
 
Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...
Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...
Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress
 
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
 
Adaptacion y mejora continua de la performance de las aplicaciones
Adaptacion y mejora continua de la performance de las aplicacionesAdaptacion y mejora continua de la performance de las aplicaciones
Adaptacion y mejora continua de la performance de las aplicaciones
 
Clase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptClase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.ppt
 
Azure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo realAzure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo real
 
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesSecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
 

Último

Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxCsarNlsonMrquezContr
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxJOELGARCIA849853
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónUniversidad de Sonora
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialEducática
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docxssusere34b451
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .itzyrivera61103
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónAntonia Yamilet Perez Palomares
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALGuadalinfoHuscarGuad
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosYOMIRAVILLARREAL1
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx221112876
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.241534381
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaRicardoEstrada90
 
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptxNIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptxjarniel1
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC6dwwcgtpfx
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaEdwinGarca59
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...dramosbrise1403
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024NicolleAndrade7
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).jcaballerosamayoa
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxdoloresolmosantiago
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blogManuel Diaz
 

Último (20)

Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docx
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptxNIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blog
 

Herramientas para la medicion de desempeño PHPConMX 2012

  • 1. Herramientas para la medición del desempeño en PHP Carlos Nacianceno
  • 2. Quién soy? • PHP desde hace 12 años • Zend Certified Engineer Carlos Nacianceno • Instructor de cursos Zend • El Taller Web
  • 3. Introducción • Cuando se desarrolla, pocas veces se toma en cuenta los recursos utilizados por las aplicaciones • Se ignora si un script consume muchos recursos y más concretamente en que procesos. • No hay conocimiento de herramientas que nos ayuden a determinar tales cosas.
  • 4. ¿Qué es el desempeño? • La cantidad de trabajo o procesos que se ejecuta en comparación con los recursos disponibles. – Que tanto hacemos con lo que tenemos • Alto/Bajo desempeño – Aprovechamiento de los recursos, no al tamaño
  • 5. Recursos • Recursos para una aplicación web – Procesamiento – Memoria – Ancho de Banda • Tradicionalmente – Limitados – Costosos – Lenta disposición
  • 6. Desempeño • Generalmente el buen desempeño puede reconocerse por: – Baja utilización de los recursos – Corto tiempo de respuesta – Transmisión de datos eficiente – Alta disponibilidad Para el usuario es la rapidez con la que ve los datos
  • 7. Benchmarking • Medir comparativamente • Punto de vista externo de nuestra aplicación – Peticiones HTTP – Web server – • Comparaciones justas!!!
  • 8. Benchmarking • Medir – Si determinada URL tiene problemas – Un cambio en el código – Cambio en X, o Y • Obtendremos información concreta con medidas de como se ve desde afuera nuestro sitio o aplicación.
  • 9. Apache Benchmarking • Saber cómo se esta desempeñando el Web server – Y la aplicación que esta sirviendo • Herramienta CLI • Incluida con cualquier instalación de Apache
  • 10. Apache Benchmarking • Ejecución • Donde – -n es el número de peticiones que ab realizará en esta sesión – -c es el número de peticiones concurrentes
  • 13. Siege • Load Testing y Benchmarking HTTP • Permite probar aplicaciones bajo carga simulada • Número de usuarios simulados configurable • Incluido en algunas distro Linux – http://www.joedog.org/pub/siege/
  • 14. Siege
  • 15. Siege • Parte de los resultados que nos entrega son: – Transacciones totales – Tiempo total del test – Tiempo promedio de respuesta para cada usuario – Concurrencia – Transacciones exitosas
  • 16. Siege
  • 17. Perfilado • Recolección de información sobre la aplicación durante su ejecución para un análisis. • Identifica cuellos de botella • Determinar en que punto de la ejecución: – Se uso más memoria – Tomó más tiempo en ejecutar
  • 18. Zend Debugger • Extensión PHP • Freeware instalable a stack PHP prexistente • Controla la ejecución y obtiene información • Informes detallados de el desempeño de la ejecución • Perfilado bajo demanda – Local – Remoto
  • 19. Zend Debugger • Cliente (IDE) hace una petición al Servidor 1. Zend Debugger se activa y controla la ejecución 2. Captura la información detallada de la misma 3. Regresa los resultados al cliente • Gráfica • Estadísticas de ejecución • Flujo de ejecución • Cobertura de código
  • 21. Xdebug • Extensión PHP • Open Source – PECL • Registra lo ocurrido en la ejecución y genera esos registros para su análisis • Perfilado encendido o apagado
  • 22. Xdebug • Se activa el perfilador de Xdebug 1. xdebug.profiler_enable a 1 • xdebug.profiler_enable_trigger 2. xdebug.profiler_output_dir 3. Captura información de la ejecución 4. Guarda resultados • Gráfica ( KcheGrind, WinGrind, WebGrind ) • Estadísticas de ejecución • Flujo de ejecución • Cobertura de código
  • 24. Xhprof • Extensión PHP • Facebook (PECL) • Más ligero que Xdebug – Compatible con KcheGrind y similares • Modificar cada archivo PHP – xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); – $xhprof_data = xhprof_disable();
  • 25. Optimización prematura • Optimizar el código antes de saber donde están los cuellos de botella. • Hacer cambios para intentar que la aplicación “sea más rápida” – Estos cambios resultan costosos en tiempo – “Tunear” el web server o sistema operativo sin “tunear” primero la aplicación – Simplemente escalar la plataforma con más recursos
  • 27. Gracias @igormx @eltallerweb http://eltallerweb.com