2012-08-14 7 views
10

मेरे पास एक बहुत बड़ा और जटिल 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 सेकंड की कूद। यह सच साबित हुआ कि यह ठंडा शुरू या गर्म था।

तो, सवाल:

  1. क्यों मेरे ऐप धीमी जगह में क्रमबद्धता विधानसभाओं के साथ शुरू होता है?
  2. क्या ऐप धारावाहिक असेंबली उत्पन्न कर रहा है जब परफोन या किसी अन्य उपकरण के माध्यम से देखने का कोई तरीका है?
  3. क्या मैं क्रमशः सीरियलाइजेशन असेंबली उत्पन्न कर रहा हूं?
+0

के तहत चल रहे हैं तो एमपीजीओ ऑप्टिमाइज़ेशन का उपयोग करने पर विचार करें जब तक कि कोई बैच-फ़ाइल सिंटैक्स हाइलाइटिंग चालू न करे, हमें इसे 'lang-none'' के रूप में छोड़ना होगा । – Adam

+0

आप कितने धारावाहिक उत्पन्न कर रहे हैं .... यदि एक बड़ी संख्या .... शायद आप उन्हें ILMerge के साथ जोड़ सकते हैं? क्या आप 64 बिट विंडोज़ पर चल रहे हैं? क्या आप अपनी परियोजना में प्री-जेनेड सीरियलाइजेशन डीएलएल के संदर्भ जोड़ते हैं? –

+0

क्या आप टाइप/टाइप विकल्प का उपयोग केवल उस प्रकार के क्रमबद्ध कोड को उत्पन्न करने के लिए कर सकते हैं, जिसे आपके डीएलएल में सभी सार्वजनिक प्रकारों के बजाय क्रमबद्ध किया जाएगा .... –

उत्तर

0

क्योंकि नेट यदि हस्ताक्षर मान्य

+6

तो आप कह रहे हैं कि वैध हस्ताक्षर की जांच करने के बजाय धारावाहिक असेंबली उत्पन्न करना तेज़ है? – AngryHacker

+0

देखें, जब आप इसे इस तरह रखते हैं तो यह पागल लगता है। –

+0

@Cole क्या कोई संदर्भ है जिसे आप इसे वापस करने के लिए उद्धृत कर सकते हैं? –

1

है आप को देखने के लिए क्यों स्टार्टअप समय बढ़ता जा रहा है आपके आवेदन प्रोफ़ाइल चाहिए जाँच करने के लिए है। ऐसा करने के लिए Perfview एक अच्छा उपकरण होगा।

यदि जेटिटिंग में बहुत अधिक समय बिताया जाता है, तो अपने आवेदन को एनजीएनएन पर विचार करें। यदि बहुत सारे पेज लोड किए गए हैं, तो यदि आप .NET 4.5

संबंधित मुद्दे