मेरा एएसपी.नेट आवेदन - बी 2 बी सिस्टम - पहले उपयोगकर्ता के आने पर 35-40 एमबी पर शुरू होता था। इतने मिनटों के बाद, आवेदन 180 या उससे अधिक उपयोगकर्ताओं के साथ 180 एमबी तक बढ़ने के लिए उपयोग किया जाता था। .नेट विकास सर्वोत्तम प्रथाओं और जीसी प्रदर्शन दिशानिर्देश पढ़ने के बाद मुझे पता चला कि समस्या मेरा आवेदन डिज़ाइन था। मैं एक बार में सहमत नहीं था।
मुझे डर था कि हम गलतियों को कितना आसान कर सकते हैं। मैंने कई विशेषताओं को छोड़ दिया और कुछ वस्तुओं को आसान बनाना शुरू कर दिया। अर्थ:
बचें इतना पृष्ठों और बुद्धिमान और मिलनसार उपयोगकर्ता नियंत्रण (कार्यक्षमताओं जो वास्तव में सबसे प्रत्येक पृष्ठ इस पर नियंत्रण का उपयोग करता है के लिए मौजूद हैं की बहुत अधिक हैं) मिश्रण।
आधार वर्गों पर सार्वभौमिक कार्यशीलताओं को रोकना बंद करें। कभी-कभी बेहतर दोहराया जाता है। विरासत लागत है।
कुछ जटिल कार्यक्षमता पर मैंने सब कुछ एक ही कार्य पर रखा। हां, 100 लाइनों तक पहुंच रहा है। जब मैंने .NET प्रदर्शन मार्गदर्शन पर इस अनुशंसा को पढ़ा तो मुझे विश्वास नहीं था लेकिन यह काम करता है। कॉल स्टैक एक समस्या है, स्थानीय चर पर वर्ग गुणों का उपयोग एक समस्या है। कक्षा स्तर चर एक नरक हो सकता है ...
जटिल आधार वर्गों का उपयोग करना बंद करें, 7 से अधिक लाइनों वाले कोई बेस क्लास मौजूद नहीं होना चाहिए। यदि आप पूरे ढांचे पर बड़ी कक्षाएं फैलते हैं, तो आपको समस्या होगी।
मैं अधिक स्थिर वस्तुओं और कार्यक्षमताओं का उपयोग शुरू करता हूं। मैंने आवेदन देखा जो अन्य आदमी डिजाइन किया गया था। सभी डेटाकैस ऑब्जेक्ट विधियां (सम्मिलित करें, अपडेट करें, हटाएं, चयन करें) स्थिर थे। अधिक समवर्ती उपयोगकर्ताओं के साथ आवेदन 45 एमबी से अधिक तक पहुंचता है।
कुछ परियोजनाओं को सहेजने के लिए, मुझे स्थिर राज्य पैटर्न पसंद है। मैंने असली दुनिया में सीखा लेकिन लेखक न्यागार्ड भी मेरी पुस्तक पर रिलीज करते हैं: रिलीज आईटी - डिज़ाइन और डिप्लॉयमेंट-रेडी सॉफ्टवेयर। वह इस तरह के दृष्टिकोण को स्थिर राज्य पैटर्न के रूप में कहते हैं। यह पैटर्न कहता है कि हमें निष्क्रिय संसाधनों को मुक्त करने के लिए कुछ चाहिए।
आप मशीन कॉन्फ़िगरेशन फ़ाइल पर खेल सकते हैं। विशेषता स्मृति पर आप एक स्मृति पुन: उपयोग करने से पहले स्मृति के प्रतिशत को इंगित करेंगे।
आप मशीन कॉन्फ़िगरेशन फ़ाइल पर भी खेलना चाहेंगे। इस विशेषता पर, जीसी मशीन व्यवहार (वर्कस्टेशन जीसी और सर्वर जीसी) को निर्देशित करेगा। यह विकल्प नाटकीय रूप से मेमोरी खपत व्यवहार को भी बदल सकता है।
जब मैंने इन वस्तुओं की परवाह करना शुरू किया तो मुझे बहुत सफलता मिली। उममीद है कि इससे मदद मिलेगी।
- 04-05-2014 में संपादित मैंने जीसी के नए संस्करणों के सुधार और एचटीएमएल 5 और एमवीसी ढांचे की प्रगति के कारण कई चीजों के बारे में अपना मन बदल दिया है।
स्रोत
2009-06-11 02:28:07
कोड की वह पंक्ति केवल हर 3 मिनट के बारे में हिट हो जाती है, इसलिए शायद इसका कोई प्रभाव नहीं पड़ेगा। – Fantius
संबंधित प्रश्न: [कम समय के लिए .NET कचरा संग्रह रोकें] (http://stackoverflow.com/questions/6005865), [वास्तविक समय में कचरा संग्रहण से कैसे बचें .NET अनुप्रयोग?] (Http: // stackoverflow .com/प्रश्न/85283) –