2010-10-31 17 views
9

Esto es para recopilar de la experiencia que la comunidad ha hecho información sobre el aspecto de la aplicación web de creación de perfiles.¿Cómo perfilas tu sitio web/aplicación web?

Hace algunos años trabajé en un proyecto muy grande en C++/Java con un ORB de CORBA y estábamos usando Rational Purify/CodeCoverage para instrumentar, detectar fugas de memoria y descubrir cuellos de botella en el código del servidor. A partir de ese momento no tenía ninguna experiencia en el uso de herramientas como esa en la plataforma .NET, ya sea trabajando en C# puro o con una aplicación web

  • ¿Utiliza herramientas?
  • ¿Estimó el tráfico y hace cálculos en el ancho de banda esperado?
  • ¿Perfila de forma diferente el código del servidor y la representación de la página web?
  • ¿Qué herramienta de cobertura de código está utilizando?

Sé que este es un tema muy grande. Parte de la información que tengo proviene del libro "Performance Analysis for Java WebSites", que es la plataforma Java y las herramientas de referencia para esa plataforma, pero es un enfoque que es transferible y, por lo tanto, las ideas centrales se aplican en general.

+0

convertido a wiki, por petición de @ Lorenzo. –

Respuesta

5

Como solución de prueba de carga gratuita, utilicé Pylot. Estoy seguro de que hay mejores soluciones pagas si tienes un presupuesto. Si puede estimar el tráfico, esta es la herramienta cuyo resultado evalúa la scalabiltiy de su proyecto. El uso de la caché de resultados de asp.net puede mejorar significativamente el rendimiento de su sitio bajo carga, por lo tanto, intente esto si sus páginas vistas un segundo son menos de lo que necesita.

Para la optimización de su cliente el uso lado de la velocidad de renderizado:

  • YSlow Firefox plug-in
  • Page Speed ​​Firefox plug-in de Google
  • Firebug de Firefox plug-in para comprobar el número de peticiones HTTP son no excesiva y js/css recursos se almacenan en caché, etc.

Si el desarrollo de una aplicación web asp.net formas puede habilitar la página de rastreo mediante la modificación de su directiva de página de manera que contenga

<%@ Page Trace="true"> 

Esto le ayudará a encontrar los controles que tardan más en procesarse.

Si tiene un problema con el código del lado del servidor siendo lento, he encontrado que casi siempre es la base de datos que está causando el problema. Necesita verificar SQL que tarda en devolver un resultado; Si encuentra alguno, debe considerar aplicar nuevos índices a sus tablas. Si su aplicación es demasiado hablador con la base de datos, debe considerar reducir la cantidad de llamadas a la base de datos. Para encontrar estos problemas, puede usar SQL Server Profiler; esto viene incluido con SQL Server 2005/2008 Developer edition.

Si usted tiene el presupuesto, que debe de comprobar a cabo de Redgate HORMIGAS Performance Profiler para perfilar el código del lado del servidor.

+0

gracias por su respuesta. ¡Voy a echarle un vistazo a estas herramientas! – Lorenzo

+1

+1 para ANTS, es una excelente herramienta. –

1

Uso dotTrace para hacer un perfil mientras uso jMeter para simular el tráfico. He encontrado que dotTrace está mucho mejor integrado que ANTS, y en general los informes son más útiles.

0

Profiling a multi-tiered, distributed, web application (server side) muestra un enfoque de alto nivel (perfilado en el nivel URL) que es:

  • plataforma y lenguaje independiente
  • completamente no invasivo
  • da una imagen de alto nivel de donde su aplicación es pasando la mayor parte de su tiempo

La idea es utilizar existentes registros web y convertirlos en una "una imagen vale más que 1000 palabras" tipo de cuadro.

Este enfoque puede no ser suficiente para casos de uso que requieren más detalles de nivel fino, pero me ayudó personalmente y puede valer la pena explorarlo.