Il mio collega ha postato questa domanda ieri: 7-second EF startup time even for tiny DbContext.Entity Framework spinup molto più lento su x64 vs x86
Dopo aver preso il suo codice e spostato in una soluzione separata per isolarlo il più possibile, ho scoperto che il target della piattaforma del progetto contenente ha avuto un profondo impatto sul runtime del processo di avvio EF.
Quando ci si rivolge a 64, ho visto che il test ha preso ~ 7 secondi per far girare la prima DbContext e < 1 secondo per girare la seconda DbContext (in linea con i risultati del mio collega che è anche di mira x64). Tuttavia, quando ho cambiato il target della piattaforma su x86, il primo tempo di rotazione di DbContext è stato ridotto di circa 4 secondi fino a 3,334633 secondi, mentre il secondo DbContext ha richiesto lo stesso tempo del caso x64.
Dato questo, Entity Framework sta attraversando un processo di inizializzazione molto diverso quando si mira a un sistema 64-bit vs un sistema a 32 bit. Qualcuno ha qualche idea di ciò che sta succedendo sotto il cofano per spiegare questo?
È forse il sondaggio di assemblaggio? Puoi guardare Fusion Log come un rapido controllo. –
@CraigStuntz Ho controllato i log di fusione e non ho visto nulla che si presentasse in modo diverso in x86 vs x64. – Sidawy
Questo è interessante. FYI EF non ha alcun codice specifico per l'architettura a 32 o 64 bit, è puro IL. Comunque la differenza è enorme. – Pawel