ASP.NET MVC: carga inicial lenta

Recientemente, creé una aplicación web asp.net mvc y la publiqué en línea.

Cuando cargue por primera vez el sitio web, verá que tarda entre 10 y 15 segundos en mostrarse; sin embargo, una vez que se ha hecho clic una vez, se carga tan rápido como se espera la segunda vez. Me pregunto si alguien puede tener una idea de por qué el sitio web tarda tanto tiempo.

Normalmente, una aplicación siempre tardará un poco más de tiempo en cargarse cuando se inicie el dominio de la aplicación.

Las cosas que ayudan a exacerbar esto podrían ser desde códigos mal escritos (IE: Application_Start) hasta ciertas bibliotecas que puede estar usando (ORM por ejemplo). ¿Cuántos módulos cargaste?

Para empezar, compruebe su web.config para la infame . Eso puede tener importantes ramificaciones de rendimiento en una configuración de producción. Establecerlo en “falso”!

Recomendamos buscar en Google algo como ” mejorar el tiempo de inicio de la aplicación ” y buscar cosas que se relacionen con su aplicación en particular.

Actualiza tu primer comentario:

Si ve que la aplicación se inicia de nuevo (se cuelga durante unos segundos) después de 30 minutos consistentemente, esto probablemente esté relacionado con la configuración de reciclaje de su grupo de aplicaciones en IIS.

Vaya al Administrador de IIS (esto supone v7 +):

  1. Piscinas de aplicaciones
  2. Haga clic con el botón derecho en el grupo que se está utilizando para su (s) aplicación (es).
  3. Seleccione “Reciclar”, aparecerá una ventana con la etiqueta “Condiciones de reciclaje”
  4. Inspeccione esas configuraciones, ya que determinarán cuándo eliminar automáticamente su grupo de aplicaciones y que se reinicie.

En términos de rendimiento general, puede intentar:

  1. Agregue algunas instrucciones de depuración que escuchan el tiempo transcurrido en su método Application_Start () o cualquier otra ubicación aplicable para tratar de detectar lo que lleva más tiempo.
  2. Crea un proyecto de demostración completamente limpio y despliégalo. Vea si sufre el mismo problema. Si no intenta introducir más y más de su código real hasta que detecte una desaceleración.

Si realmente está perplejo, el # 2 puede ser su mejor opción, aunque probablemente será la opción más lenta.

También tuve el mismo problema, con la carga lenta de los sitios de asp.net mvc, finalmente encontré la mejor manera de cargar un sitio, extremadamente rápido en la primera carga.

Mi solución es para Windows Server 2008 r2 e IIS 7.5, pero en los servidores de Windows superiores y las versiones superiores de iis también funcionan, con algunas diferencias simples.

En primer lugar, debe establecer startMode de su grupo de aplicaciones para que siempre se ejecute, esto evitará que su grupo de aplicaciones se quede dormido, después de un tiempo. (en mi caso, solo este paso cambia la carga de mis sitios primero de 45-55 segundos a aproximadamente 8-12 segundos) .

en el primer paso, no hay una primera solicitud para su sitio web, para la precarga de su sitio web, necesitamos otro paso, es instalar el módulo de inicialización de aplicaciones para iis7.5 desde aquí

en el paso dos, debe establecer preloadEnabled = true para su sitio web; esta opción es la inicialización de la aplicación que se agregó a la configuración del sitio.

Para obtener más información y cómo puede establecer estas opciones, consulte esta publicación de blog: http://blogs.iis.net/wadeh/application-initialization-part-2

después del paso dos, mi sitio web se carga en solo 1-3 segundos .

Además de lo que ha dicho Jay … debes considerar el uso de memoria de tu grupo de aplicaciones. Esto es especialmente cierto para los entornos de alojamiento compartido, donde su proveedor generalmente reciclará un grupo de aplicaciones una vez que se alcanza el límite de memoria (en lugar de basarse en el tiempo). Esto hará que su sitio vuelva a “reiniciarse”, lo que provocará un problema de carga inicial.

Parece que las imágenes que giran son un poco grandes. En mi navegador, esta parte carga la última. Todo el rest de la página se carga bastante rápido. Puede pensar en cambiar el tamaño de estas imágenes. Además, los archivos grandes de JavaScript pueden causar cierta desaceleración durante la carga inicial.

Hay algunos pasos para implementar:

  1. Caché del lado del cliente
  2. Agrupación y Minificación
  3. Caché del lado del servidor
  4. Configurar el inicio automático con el Administrador de IIS