我的同事昨天發佈了這個問題:7-second EF startup time even for tiny DbContext。實體框架spinup在x64 vs x86上速度要慢得多
在將代碼轉移到單獨的解決方案以儘可能隔離它之後,我發現包含項目的平臺目標對EF啓動過程的運行時間產生了深遠的影響。當我定位到x64時,我發現測試花費了大約7秒鐘來啓動第一個DbContext和1秒鐘啓動第二個DbContext(與我的同事的目標是x64一致)。但是,當我將平臺目標切換到x86時,第一個DbContext加速時間減少了約4秒,降低到3.34633秒,而第二個DbContext花費了與x64情況相同的時間量。
鑑於此,在針對64位系統與32位系統時,Entity Framework似乎正在經歷一個完全不同的初始化過程。有沒有人有任何洞察,以解釋這個問題?
這可能是裝配探測?你可以看看Fusion Log作爲一個快速檢查。 –
@CraigStuntz我檢查了融合日誌,並沒有看到任何在x86和x64中出現的不同。 – Sidawy
這很有趣。 FYI EF沒有針對32位或64位體系結構的任何代碼 - 它是純粹的IL。差別仍然很大。 – Pawel