से 10x धीमी गति से चल रही है मेरे पास एक सी # लाइब्रेरी है जो कुछ फ़ाइल प्रोसेसिंग करता है। मैंने एक कंसोल और डेस्कटॉप एप्लिकेशन बनाया जो पुस्तकालय का उपयोग करता है और लगभग 1min में 256 एमबी फ़ाइल को संसाधित करता है। मैंने फिर एक विंडोज सेवा में होस्ट की गई डब्ल्यूसीएफ सेवा बनाई जो एक ही फाइल प्रोसेसिंग लाइब्रेरी का उपयोग करता है, फिर भी वेबसाइट से बुलाए जाने पर उसी 256 एमबी फ़ाइल को संसाधित करने के लिए 10x लंबा लगता है। विंडोज सेवा प्रशासक विशेषाधिकारों के साथ एक डोमेन खाते के तहत चल रही है।विंडोज सेवा में होस्ट की गई डब्ल्यूसीएफ सेवा कंसोल ऐप
डब्ल्यूसीएफ सेवा को कॉल करने में ओवरहेड बहुत तेज़ है, फिर भी लोडफाइल विधि बहुत अधिक समय लेती है। मैंने
Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High;
के माध्यम से स्टार्टअप के दौरान प्रक्रिया प्राथमिकता बढ़ाने की कोशिश की। मैंने इस सेवा को Win7 64bit डेस्कटॉप सिस्टम (6 जीबी), 2003 एक्सपी 32 बिट सर्वर (4 जीबी) और 2008 आर 2 32 बिट सर्वर (4 बीजी) पर समान परिणामों के साथ चलाया है। कंसोल और डेस्कटॉप ऐप्स प्रत्येक फ़ाइल को उपरोक्त सिस्टम पर लगभग 1min में संसाधित करते हैं। प्रक्रिया स्मृति को बाधित नहीं करती है और स्वैपविले में प्रवेश नहीं करती है।
क्या विंडोज़ सेवाएं किसी भी तरह की प्रक्रिया को बाधित करती हैं? क्या मुझे आईआईएस के तहत डब्ल्यूसीएफ सेवा चलाने के बेहतर परिणाम मिलेंगे?
संपादित करें: मैंने वेबसाइट से लाइब्रेरी निर्देशिका को कॉल करने का प्रयास किया और यह भी कंसोल या डेस्कटॉप एप्लिकेशन से 10x लंबा लेता है।
अद्यतन: यह लॉग आउट करता है कि यह Log4PostSharp था। कॉन्फ़िगरेशन फ़ाइलों में कंसोल और डेस्कटॉप ऐप्स में log4net का कोई निशान नहीं था, फिर भी वेबसाइट और विंडोज़ सेवा ने किया था। एक log4net TraceAppender चुपचाप बहुमूल्य CPU चक्र खा रहा था।
कैसे आप फ़ाइल वास्तव में लोड कर रहे हैं ऐसा करने के लिए, अपने
app.config
फ़ाइल में निम्न डाल? क्या आपने प्रोफाइलर के साथ प्रयास किया है कि वास्तव में बाधा कहां है (वीएस 2010 अल्टीमेट में एक प्रोफाइलर है) –यदि आप पहले से ऐसा नहीं कर चुके हैं तो मैं प्रक्रिया प्राथमिकता वर्ग को सामान्य में बहाल करने की अनुशंसा करता हूं। प्रक्रिया प्राथमिकता को संशोधित करना आम तौर पर एक प्रोग्राम को गति नहीं देगा, और यह संभावित रूप से अन्य समस्याएं पैदा कर सकता है। –
@ डेवाइड: प्रोफाइलर प्रीमियम में भी है। +1; जाने का यह रास्ता है। –