मेरे पास एक बहुत बड़ा और जटिल Winforms एप्लिकेशन है। स्टार्टअप समय को कम करने के प्रयास में, मैंने निम्न बैच फ़ाइल का उपयोग करके पूर्व-जनरेटेड सीरियलाइजेशन असेंबली का उपयोग किया।प्री-जनरेटेड सीरियलाइजेशन असेंबली के साथ मेरा .NET स्टार्ट-अप समय क्यों बढ़ता है?
; delete any existing serialization assemblies
del *XmlSerializers.dll
; gen new serialization assemblies
for %%a in (*.dll) do sgen /assembly:%%a
; delete .deleted files (generated for assemblies which do not allow serialization)
del *.dll.deleted*
हालांकि, मेरे आश्चर्य के लिए, स्टार्टअप समय वास्तव में 4.6 सेकंड से 6.1 सेकंड तक चला गया - 1.5 सेकंड की कूद। यह सच साबित हुआ कि यह ठंडा शुरू या गर्म था।
तो, सवाल:
- क्यों मेरे ऐप धीमी जगह में क्रमबद्धता विधानसभाओं के साथ शुरू होता है?
- क्या ऐप धारावाहिक असेंबली उत्पन्न कर रहा है जब परफोन या किसी अन्य उपकरण के माध्यम से देखने का कोई तरीका है?
- क्या मैं क्रमशः सीरियलाइजेशन असेंबली उत्पन्न कर रहा हूं?
के तहत चल रहे हैं तो एमपीजीओ ऑप्टिमाइज़ेशन का उपयोग करने पर विचार करें जब तक कि कोई बैच-फ़ाइल सिंटैक्स हाइलाइटिंग चालू न करे, हमें इसे 'lang-none'' के रूप में छोड़ना होगा । – Adam
आप कितने धारावाहिक उत्पन्न कर रहे हैं .... यदि एक बड़ी संख्या .... शायद आप उन्हें ILMerge के साथ जोड़ सकते हैं? क्या आप 64 बिट विंडोज़ पर चल रहे हैं? क्या आप अपनी परियोजना में प्री-जेनेड सीरियलाइजेशन डीएलएल के संदर्भ जोड़ते हैं? –
क्या आप टाइप/टाइप विकल्प का उपयोग केवल उस प्रकार के क्रमबद्ध कोड को उत्पन्न करने के लिए कर सकते हैं, जिसे आपके डीएलएल में सभी सार्वजनिक प्रकारों के बजाय क्रमबद्ध किया जाएगा .... –