¿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
Respuesta
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.
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.
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.
Agregado a la cola de mi libro. Gracias por vincularlo. –
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.
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
- 1. ¿Cómo hacer que un sitio web funcione más rápido?
- 2. ¿Cómo hacer que doxygen funcione más rápido?
- 3. ¿Cómo puedo hacer que Matlab Compiler funcione más rápido?
- 4. Haciendo que Zend-Framework funcione más rápido
- 5. ¿Es posible optimizar ASP.NET WebForms para que funcione tan rápido como ASP.NET MVC?
- 6. Cómo hacer que mi aplicación copie el archivo más rápido
- 7. Consejos para el desarrollo de una aplicación ASP.NET que no depende de JavaScript
- 8. ¿Cómo hacer que JVM arranque más rápido?
- 9. Hacer que JAXB vaya más rápido
- 10. Programación de principiante: consejos para diseñar una aplicación web
- 11. ¿Una forma de hacer que md5_file() sea más rápido?
- 12. Algo más rápido que HttpHandlers?
- 13. ¿Qué hace que una aplicación web sea una aplicación amigable?
- 14. Consejos principales para aplicaciones web seguras
- 15. Código C más rápido para descargar una página web
- 16. ¿Cómo hacer que este Twisted Python Proxy sea más rápido?
- 17. Cómo hacer que Uploadify funcione con asp.net-mvc
- 18. Consejos para hacer un código de calculadora de fracción más optimizado (más rápido y con menos memoria)
- 19. Algo más rápido que get_headers()
- 20. ¿Qué debo hacer para que Hash.from_xml() funcione?
- 21. Cómo hacer que el emulador de Android arranque más rápido
- 22. ¿Cómo hacer que ASP.NET MVC funcione en IIS 6?
- 23. ¿Es posible configurar Autofac para que funcione con ASP.NET MVC y ASP.NET Web Api
- 24. ASP.NET MVC Aplicación web vs Aplicación web ASP.NET
- 25. ¿Cómo puedo hacer cout más rápido?
- 26. Más rápido que String.Replace()
- 27. ¿Cómo puedo hacer que Java3D comience más rápido?
- 28. ¿Es + = más rápido que - =?
- 29. ¿Cómo hacer que UIMenuController funcione para una vista personalizada?
- 30. Aplicación Java: Hacer que Log4j funcione dentro del entorno Eclipse
¿Qué tipo de aplicación? ¿Tiene una base de datos? ¿Está ejecutando cálculos? Pregunta enteramente subjetiva .... –
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
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