Inicio de ASP.NET web de perfilado de rendimiento

Estoy tratando de determinar la causa de un inicio inicial muy largo (imho) de una aplicación ASP.NET.

La aplicación utiliza varias bibliotecas de terceros, y muchas referencias que estoy seguro que podrían consolidarse, sin embargo, estoy tratando de identificar (y repartir las culpas) las dlls y cuánto contribuyen al proceso de inicio extendido.

Hasta ahora, los tiempos de inicio varían de 2 a 5 minutos, dependiendo del uso de otras cosas en la caja. En mi opinión, esto es inaceptable debido a la complejidad del sitio, y necesito reducirlo a algo en la región de un máximo de 30 segundos.

Para ser claro en el alcance del rendimiento que estoy buscando, es el momento desde la primera solicitud hasta el método inicial Application_Start que está siendo afectado.

Entonces, ¿dónde empezaría con la obtención de información sobre qué archivos DLL están cargados y cuánto tiempo demoran en cargarse, de modo que puedo intentar unir un costo / beneficio en el que necesitamos abordar / consolidar?

Desde una perspectiva de habilidad, he estado usando JetBrains dotTrace por un tiempo, y tengo claro cómo comparar la aplicación una vez que estamos en la aplicación, pero parece que esto está fuera del código de la aplicación, y por lo tanto, fuera de lo que Actualmente lo sé.

Lo que estoy buscando son metodologías sobre cómo obtener visibilidad de lo que está sucediendo antes del primer punto de entrada en mi código.

Nota: Sé que puedo llamar a la página predeterminada en reciclar / actualizar para hacer una carga inicial, pero prefiero resolver el problema real en lugar de cubrirlo.

Nota 2: el hardware está más que suficientemente escalado y separado en términos de funcionalidad, por lo tanto, estoy bastante seguro de que este no es el problema.