Mi compañero de trabajo publicó ayer esta pregunta: 7-second EF startup time even for tiny DbContext.Entity Framework gira mucho más lento en x64 vs x86
Después de tomar su código y moverlo a una solución separada para aislarlo tanto como fuera posible, descubrí que el objetivo de la plataforma del proyecto contenedor tenía un efecto profundo en el tiempo de ejecución del proceso de inicio de EF.
Al apuntar a x64, vi que la prueba tardó ~ 7 segundos en girar el primer DbContext y < en 1 segundo para girar el segundo DbContext (consistente con los hallazgos de mi compañero de trabajo que también apuntan a x64). Sin embargo, cuando cambié el objetivo de la plataforma a x86, el primer tiempo de activación del DbContext se redujo en aproximadamente 4 segundos hasta 3.34633 segundos, mientras que el segundo DbContext tomó la misma cantidad de tiempo que el caso x64.
Dado esto, parece que Entity Framework está pasando por un proceso de inicialización muy diferente cuando se dirige a un sistema de 64 bits frente a un sistema de 32 bits. ¿Alguien tiene alguna idea de lo que está pasando bajo el capó para explicar esto?
¿Es acaso una prueba de montaje? Podrías mirar Fusion Log como un control rápido sobre eso. –
@CraigStuntz Revisé los registros de fusión y no vi nada que surgiera de manera diferente en x86 frente a x64. – Sidawy
Esto es interesante. FYI EF no tiene ningún código específico para la arquitectura de 32 o 64 bits, es puro IL. Aún así, la diferencia es enorme. – Pawel