पर बहुत धीमा है मेरे सहकर्मी ने कल इस प्रश्न को पोस्ट किया: 7-second EF startup time even for tiny DbContext।एंटीटी फ्रेमवर्क स्पिनअप x64 बनाम x86
अपना कोड लेने के बाद और इसे जितना संभव हो सके इसे अलग करने के लिए इसे अलग समाधान में ले जाने के बाद, मैंने पाया कि युक्त प्रोजेक्ट के प्लेटफ़ॉर्म लक्ष्य को ईएफ स्टार्टअप प्रक्रिया के रनटाइम पर गहरा असर पड़ा था।
x64 को लक्षित करते समय, मैंने देखा कि परीक्षण को पहले डीबीकॉन्टेक्स्ट और < को दूसरे डीबीकॉन्टेक्स्ट को स्पिन करने के लिए ~ 7 सेकंड लग गए थे (मेरे सहकर्मी के निष्कर्षों के अनुरूप जो x64 को लक्षित कर रहा है)। हालांकि जब मैंने प्लेटफार्म लक्ष्य को x86 पर स्विच किया, तो पहला डीबीकॉन्टेक्स्ट स्पिन अप टाइम लगभग 4 सेकंड तक 3.34633 सेकेंड तक कम हो गया, जबकि दूसरा डीबीकॉन्टेक्स्ट x64 केस के समान समय ले गया।
यह देखते हुए, ऐसा लगता है कि 64-बिट सिस्टम बनाम 32-बिट सिस्टम को लक्षित करते समय एंटीटी फ्रेमवर्क एक बहुत ही अलग प्रारंभिक प्रक्रिया के माध्यम से जा रहा है। क्या किसी को समझाने के लिए हुड के नीचे क्या हो रहा है इस बारे में कोई अंतर्दृष्टि है?
क्या यह शायद असेंबली जांच कर रहा है? आप फ्यूजन लॉग को उस पर त्वरित जांच के रूप में देख सकते हैं। –
@CraigStuntz मैंने फ़्यूज़न लॉग की जांच की और x86 बनाम x64 में अलग-अलग कुछ भी नहीं देखा। – Sidawy
यह दिलचस्प है। एफवाईआई ईएफ में 32- या 64-बिट आर्किटेक्चर के लिए कोई कोड विशिष्ट नहीं है - यह शुद्ध आईएल है। फिर भी अंतर बहुत बड़ा है। – Pawel