2009-02-05 7 views
19

¿Cómo comparto el rendimiento de mis aplicaciones web?¿Cuáles son las formas de encontrar cuellos de botella en una aplicación web?

¿Hay alguna manera de descubrir los cuellos de botella en una aplicación web?

EDITAR: No estoy preguntando acerca de los ajustes de interfaz como imágenes, CSS, etc. Lo que quiero saber es cómo crear un perfil del final de la aplicación para que sepa qué métodos/consultas modificar para aumentar la actuación.

Respuesta

23

En cuanto a los cuellos de botella en el servidor de aplicaciones, puede usar un profiling tool para ver cuánto tiempo se usa en cada parte del código, cuánta memoria se usa, etc. Para PHP, webgrind parece ser una GUI popular forma de perfil basada en Algo como dotTrace haría lo mismo para una aplicación ASP.NET. Tenga en cuenta que cuando se trata de bases de datos, las herramientas de creación de perfiles como esta solo le mostrarán qué consultas de bases de datos son lentas, no por qué son lentas. Para eso, necesitaría buscar perfiles específicos de la base de datos ...

Otro aspecto de los cuellos de botella de la aplicación web es cuánto tiempo demora un navegador en descargar todo (importaciones de CSS y JavaScript, imágenes, etc.) y renderiza la página. Hay varias compañías como Keynote que tienen robots que llegarán a su sitio de todo el mundo, analizan el rendimiento y le dan recomendaciones sobre los cambios que puede realizar para obtener el resultado de su aplicación en el navegador y procesar lo más rápido posible (por ejemplo, "use compresión gzip y ponga su JavaScript al final de la página en lugar de la cabecera", etc.). También puede hacerlo usted mismo en una escala mucho más pequeña, por supuesto. Por ejemplo, los complementos de Firefox como Jiffy y YSlow harán el trabajo.

0

Podría ser más específico sobre la plataforma (XP, Vista, Server 2000, 2003, 2008) y el método de ejecución de la aplicación (IIS, Windows Service). Como se mencionó anteriormente, el rastreo es un buen comienzo, pero existen otras herramientas según el entorno en el que esté configurada la aplicación web.

4

Para cualquier aplicación web, puede intentar usar la extensión Firebug, junto con la extensión Yahoo YSlow (a Firebug). Realmente útil en el rendimiento de la página. http://developer.yahoo.com/yslow/

+1

del lado del cliente sin embargo, no ayuda con los problemas en sentido ascendente – annakata

2

Fiddler es una buena herramienta para el registro y la vigilancia del tráfico. Funciona en el cliente y puede ver qué solicitudes y respuestas van entre el cliente y el servidor web.Puede analizar fácilmente páginas lentas y detectar razones (para muchas solicitudes, páginas grandes, ...)

Específicamente para ASP.Net, hay un mecanismo de rastreo que puede crear un registro detallado para aplicaciones web. El registro muestra información de tiempo y usted puede encontrar funciones de larga ejecución. (Artículo de MSDN: ASP.NET Tracing Overview

-3

El primer paso es rápido y sucio. Pruébelo en un iPhone, en una computadora portátil con conexión 3G, en una PC con conexión a Internet por satélite y en una PDA para Windows Mobile. Hecho. Si no, triangular

0

Activar la función de rastreo, trace = true si se trata de una aplicación web y poner en las declaraciones de seguimiento al comienzo y al final de sus métodos que disparan. Esto le dará una lectura muy detallada de las marcas en el sistema y, en consecuencia, cuánto tiempo demora cada pieza en ejecutarse.

Si tiene una biblioteca que está siendo llamada, entonces también puede hacer la traza utilizando httpcontext.Current.Trace.Write para generar tú necesito mirar. Alternativamente, si su aplicación es realmente quisquillosa, puede escribir su propia función para almacenar las instrucciones de seguimiento en una variable compartida y escribirla en un DB u otro mecanismo una vez que se haya ejecutado el script.

1

intente utilizar algunos motores de prueba como PHPUnit para acentuar su aplicación, y use su caparazón para ver qué proceso está tardando más en resolverse.

en Unix/Linux puede usar el comando 'top'

en Windows utiliza el administrador de tareas (extendido)

0

Si desea una forma genérica para encontrar los cuellos de botella, trate de usar una herramienta de monitorización HTTP. Esto le permite ver qué tipos de solicitudes tardan más o si devuelven mensajes de error. A continuación, puede utilizar una herramienta de generación de perfiles específica de la plataforma para concentrarse en áreas específicas de su aplicación en función de los datos de la herramienta.

Me gusta usar una herramienta de proxy HTTP como Charles para hacer este tipo de análisis.

Cuestiones relacionadas