¿Por qué DbContext.SaveChanges 10x más lento en el modo de depuración?

Alguien puede explicar

¿Por qué DbContext.SaveChanges ejecuta ~ 10x más lento en el modo de depuración que en el modo de producción?¿Hay alguna manera de que pueda acelerar esto?

En el modo de depuración, mi página web tarda 116 segundos en cargarse en comparación con 15 segundos si inicio el proyecto sin depurar.

He establecido declaraciones de seguimiento e identifiqué que ~ 100 de los 116 segundos se gastan en mi método DbContext.SaveChanges cuando está en modo de depuración.

Ejecutar el proyecto sin depurar solo 7 segundos en la misma sección.

Déjame saber en los comentarios si deseas más información.

Configuración del proyecto:

Página web ASP.NETVS2012SQLServer2012Entity Framework 5.0

Información adicional: (Avísame en los comentarios si necesitas más)

El número acumulado de consultas de sql sobre el método SaveChanges es 20,000Cadena de conexión de producción: Fuente de datos = PC-DEV; Catálogo inicial = aspnet-2013-06-04; Seguridad integrada = Verdadera; MultipleActiveResultSets = Verdadera; Nombre de aplicación = EntityFrameworkMUECadena de conexión de depuración: Fuente de datos = PC-DEV; Catálogo inicial = aspnet-2013-06-04; Seguridad integrada = True; MultipleActiveResultSets = True; Nombre de la aplicación = EntityFrameworkMUETambién he experimentado el mismo rendimiento relativo con LocalDB que la base de datos de respaldo

Actualizar:

Como @ruionwriting sugirió, hice un perfil de la base de datos y lo que encontré es que los comandos de ~ 20,000 sql toman exactamente el mismo tiempo si el proyecto se ejecuta en modo de producción o depuración. (0 ms por comando).

Sin embargo, la diferencia de tiempo absoluta en promedio entre los 20,000 comandos es de 5 ms en modo de depuración.

En contraste con el modo de producción, la diferencia de tiempo promedio sobre el conjunto de comandos es de 0,3 ms.

Esta es la diferencia aproximada de 10 veces el rendimiento del tiempo y aísla el marco de la entidad como lo que está tomando el tiempo extra en el modo de depuración.

¿Hay una manera de configurar la compilación de depuración de tal manera que se pueda hacer referencia a EntityFramework sin las marcas de depuración?

Y si tuviera que lograr de alguna manera el rendimiento de nuevo a través de alguna magia del compilador, ¿qué perdería en términos de capacidades de depuración? Actualmente no puedo ingresar al código de marco de la entidad, así que no creo que me pierda nada.

¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta