2009-12-31 16 views
5

¿Qué podemos hacer para que una aplicación web asp.net se ejecute más rápido que antes? ¿Cuáles son todos los ajustes necesarios para ello?Consejos para hacer que una aplicación web asp.net funcione más rápido

+0

¿Qué tipo de aplicación? ¿Tiene una base de datos? ¿Está ejecutando cálculos? Pregunta enteramente subjetiva .... –

+0

La aplicación es una aplicación web asp.net con 82 páginas web, 34 informes (tanto gráficos como de texto), DB es servidor SQL 2005. El tiempo de respuesta de la página en promedio es de alrededor de 4-5 segundos . – HotTester

+0

Gracias por todas sus respuestas y aprecié todas sus sugerencias ... Fui por la siguiente solución: primero optimicé todas las consultas mediante una herramienta de optimización de consultas. En segundo lugar, aumenté la memoria del servidor que aloja la aplicación (anteriormente era 512 mb ram ... y ahora 2 GB). Por último, eliminé todos los viewstate no deseados ... -> El resultado es que la aplicación se ejecuta bastante rápido y el tiempo de respuesta promedio es ahora de 1-2 segundos. Aún así, si alguien tiene más puntos para compartir, es bienvenido – HotTester

Respuesta

6

Para hacer cualquier aplicación funcione más rápido, primero averiguar dónde se trata de pasar su tiempo, a continuación, hacer que pasan menos tiempo allí. Use un perfilador.


Un perfilador simplifica el proceso de dividir la aplicación en piezas más pequeñas y luego acelerar las piezas individuales. Puede hacerlo por su cuenta si no puede pagar un generador de perfiles.

Por ejemplo, dicen que su tiempo de respuesta promedio es de 4-5 segundos. Eso es un largo tiempo. ¿Qué está pasando en esos 5 segundos? ¿Está todo esperando por la base de datos? Puede intentar ejecutar sus consultas fuera de la aplicación para ver cuánto tiempo toman. Puede ejecutar el Analizador de SQL Server para registrar las transacciones de su base de datos durante un período de tiempo, y luego ejecutar el resultado a través del Asistente de ajuste de la base de datos. Puede tener algunas recomendaciones para cambios en los índices de la base de datos.

puede usar Fiddler, o girar en la página rastreo para averiguar si sus páginas son demasiado grandes. El seguimiento puede indicarle por cuánto tiempo están tomando las fases particulares de las operaciones de la página. Tal vez estás tardando en renderizar ciertas páginas.

Además, es necesario mirar el rendimiento del servidor. ¿Estás usando demasiada CPU? Demasiada memoria? ¿Está gastando su tiempo con la página golear, golpeando las páginas del proceso de trabajo de ASP.NET de la memoria con el fin de traer en las páginas de SQL Server, sólo para que esas páginas eliminados cuando la consulta de base de datos completa y las necesidades de proceso de trabajo para correr de nuevo?

dividir el problema en partes más pequeñas, a continuación, fijar las piezas.

+0

Con las aplicaciones web, no siempre es tan fácil ... – RickNZ

+0

¿Por qué no? ¿Has probado dotTrace de JetBrains? Hace un buen trabajo al perfilar aplicaciones ASP.NET. –

+0

son estas herramientas perfiladoras freeware? – HotTester

5

Caché - tanto en la página y datos - y optimizar el acceso a datos son probablemente los elementos clave para mejorar el rendimiento sin necesidad de cambiar el hardware. Más allá de eso, puede ver el equilibrio de agrupamiento/carga para hacer que haya más recursos disponibles.

3

ajuste del rendimiento de ASP.NET es un gran tema. De hecho, en un intento de dar una respuesta completa a su pregunta, escribí un libro sobre él: Ultra-Fast ASP.NET: Build Ultra-Fast and Ultra-Scalable web sites with ASP.NET and SQL Server.

Desde un nivel superior:

  • Minimizar de ida y vuelta, tanto entre el cliente y el servidor, y entre el servidor y DB
  • Centrarse en el rendimiento percibido
  • Minimizar el bloqueo de llamadas
  • caché en todos los niveles
  • Optimizar la gestión de E/S de disco
  • Optimizar la carga del objeto del navegador y el orden de representación
  • Evitar actualizaciones de las páginas completas con Ajax, Silverlight y Javascript
  • Evitar sincrónica DB escribe
  • Uso de monitoreo e instrumentación
  • comprender cómo SQL Server administra la memoria
  • El uso eficaz de la partición en el nivel de datos

Mi enfoque es en gran medida prescriptivo, en lugar de teórico. Puede echar un vistazo a los comentarios en Amazon para obtener más detalles sobre lo que quiero decir.

+0

Agregado a la cola de mi libro. Gracias por vincularlo. –

0

Estoy de acuerdo con el almacenamiento en caché. ASP.NET tiene grandes mecanismos de almacenamiento en caché integrados.

También recomendaría perfilar la aplicación, como ya se ha recomendado anteriormente.

Aquí hay un enlace a un artículo sobre algunos perfiladores .NET gratuitos y pagados también.

http://www.devcurry.com/2009/11/free-net-profilers-and-some-paid-ones.html

edición: es posible que desee echa un vistazo a este hilo StackOverflow así

https://stackoverflow.com/questions/308816/any-good-free-net-profiler

Espero que esto ayude.

2

Este es un gran tema, pero las principales cosas que vienen a la mente:

  • mantener el tamaño de estado de vista abajo
  • menos las devoluciones de datos. Use javascript para evitarlos cuando sea posible. Los controles de validación son un buen ejemplo de cómo puede funcionar esto.
  • tienen una buena estrategia de almacenamiento en caché

También hay no asp.cosas neta específicos, como los siguientes:

  • asegurarse de que sus consultas a la base no se empantanamiento
  • minimizar las peticiones HTTP
  • mantener los recursos estáticos en un dominio sin cookies separada
  • perfil antes de pasar el tiempo la optimización de modo que usted no pierda tiempo optimizando las cosas mal

también puede encontrar útil esta pregunta:
https://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site

Cuestiones relacionadas