एएसपीनेट वेब एप्लिकेशन को पहले से तेज गति से चलाने के लिए हम क्या कर सकते हैं। इसके लिए आवश्यक सभी tweaking क्या हैं?एएसपीनेट वेब एप्लिकेशन बनाने के लिए टिप्स तेजी से चलते हैं
उत्तर
कोई भी एप्लिकेशन तेजी से चलाने के लिए, पहले पता लगाएं कि यह अपना समय कहां खर्च कर रहा है, फिर इसे कम समय व्यतीत करें। एक प्रोफाइलर का प्रयोग करें।
एक प्रोफाइलर आपके आवेदन को छोटे टुकड़ों में तोड़ने और फिर अलग-अलग टुकड़ों को तेज करने की प्रक्रिया को सरल बनाता है। यदि आप एक प्रोफाइलर बर्दाश्त नहीं कर सकते हैं तो आप इसे अपने आप कर सकते हैं।
उदाहरण के लिए, आप कहते हैं कि आपका औसत प्रतिक्रिया समय 4-5 सेकंड है। लंबा समय हो गया है। उन 5 सेकंड में क्या चल रहा है? क्या यह सब डेटाबेस के लिए इंतजार कर रहा है? आप एप्लिकेशन के बाहर अपने प्रश्नों को चलाने का प्रयास कर सकते हैं ताकि वे यह देख सकें कि वे कितने समय तक लेते हैं। आप समय के दौरान अपने डेटाबेस लेनदेन को रिकॉर्ड करने के लिए SQL सर्वर प्रोफाइलर चला सकते हैं, फिर डेटाबेस ट्यूनिंग विज़ार्ड के माध्यम से परिणाम चला सकते हैं। इसमें डेटाबेस की अनुक्रमणिका में परिवर्तन के लिए कुछ सिफारिशें हो सकती हैं।
आप फिडलर का उपयोग कर सकते हैं, या यह पता लगाने के लिए पेज ट्रेसिंग चालू कर सकते हैं कि आपके पृष्ठ बहुत बड़े हैं या नहीं। ट्रेसिंग आपको बता सकती है कि पृष्ठ संचालन के कितने चरण ले रहे हैं। शायद आप कुछ पृष्ठों को प्रस्तुत करने में काफी समय लग रहे हैं।
इसके अलावा, आपको अपने सर्वर के प्रदर्शन को देखने की आवश्यकता है। क्या आप बहुत अधिक CPU का उपयोग कर रहे हैं? बहुत ज्यादा स्मृति? क्या आप अपना समय पेज थ्रैशिंग के साथ बिता रहे हैं, एसक्यूएल सर्वर के पृष्ठों को लाने के लिए एएसपी.NET कार्यकर्ता प्रक्रिया के पृष्ठों को स्मृति से बाहर खटखटाते हैं, केवल डेटाबेस पेज पूर्ण होने पर और कार्यकर्ता प्रक्रिया की आवश्यकता होने पर उन पृष्ठों को खारिज कर दिया जाता है फिर से चलाने के लिए?
समस्या को छोटे टुकड़ों में तोड़ दें, फिर टुकड़ों को ठीक करें।
कैशिंग - पृष्ठ और डेटा दोनों - और डेटा एक्सेस को अनुकूलित करने से शायद हार्डवेयर को बदलने के बिना प्रदर्शन में सुधार करने के लिए महत्वपूर्ण तत्व हैं। इसके अलावा आप अधिक संसाधन उपलब्ध कराने के लिए क्लस्टरिंग/लोड संतुलन को देख सकते हैं।
एएसपी.नेट के लिए प्रदर्शन ट्यूनिंग एक बड़ा विषय है। वास्तव में, आपके प्रश्न का व्यापक उत्तर प्रदान करने के प्रयास में, मैंने इसके बारे में एक पुस्तक लिखी: Ultra-Fast ASP.NET: Build Ultra-Fast and Ultra-Scalable web sites with ASP.NET and SQL Server।
एक उच्च स्तर से:
- कम से कम राउंड ट्रिप, क्लाइंट और सर्वर के बीच दोनों, और कथित प्रदर्शन पर
- फोकस सर्वर और डीबी के बीच
- अवरुद्ध कम से कम कॉल
- कैश सभी स्तरों पर
- डिस्क I/O प्रबंधन अनुकूलित करें
- ब्राउज़र ऑब्जेक्ट लोड को अनुकूलित करें और ऑर्डर
- अजाक्स, सिल्वरलाइट और जावास्क्रिप्ट के साथ पूर्ण पृष्ठ पुनः लोड करने से बचें
- बचें तुल्यकालिक डीबी लिखते निगरानी और इंस्ट्रूमेंटेशन
- उपयोग
- समझ कैसे एसक्यूएल सर्वर स्मृति डेटा स्तर पर
- विभाजन का प्रभावी उपयोग का प्रबंधन करता है
मेरा दृष्टिकोण सैद्धांतिक के बजाय काफी हद तक अनुवांशिक है। मेरा मतलब है कि आप मेरे बारे में अधिक जानकारी के लिए अमेज़ॅन पर समीक्षाओं पर नज़र डाल सकते हैं।
मेरी पुस्तक कतार में जोड़ा गया। इसे जोड़ने के लिए धन्यवाद। –
मैं कैशिंग के साथ सहमत हूं। एएसपी.नेट में महान अंतर्निहित कैशिंग तंत्र हैं।
मैं भी आवेदन को प्रोफाइल करने की अनुशंसा करता हूं, जैसा कि पहले से ही इसकी सिफारिश की गई थी।
यहां कुछ मुफ्त .NET प्रोफाइलर्स और भुगतान किए गए लोगों के बारे में एक लेख का एक लिंक है।
http://www.devcurry.com/2009/11/free-net-profilers-and-some-paid-ones.html
संपादित करें: यदि आप इस StackOverflow धागा बाहर की जाँच करने के लिए और साथ ही
https://stackoverflow.com/questions/308816/any-good-free-net-profiler
आशा इस मदद करता है चाहते हो सकता है।
यह एक बड़ा विषय है, लेकिन मुख्य चीजें हैं जो मन में आते हैं:
- नीचे viewstate आकार
- कम Postbacks रहते हैं। जब संभव हो तो उनसे बचने के लिए जावास्क्रिप्ट का प्रयोग करें। सत्यापन नियंत्रण एक अच्छा उदाहरण है कि यह कैसे काम कर सकता है।
- एक अच्छा कैशिंग रणनीति
वहाँ भी है गैर एएसपी है।नेट-विशिष्ट बातें, इस तरह:
- सुनिश्चित करें कि आपके डेटाबेस प्रश्नों आप नीचे
- bogging नहीं कर रहे हैं http कम से कम का अनुरोध करता है
- एक अलग कुकी-रहित डोमेन में निश्चित संसाधनों रखने
- प्रोफ़ाइल इससे पहले कि आप समय खर्च करना तो अनुकूलन के आप समय बर्बाद मत करो कि गलत बात
तुम भी इस सवाल का सहायक हो सकते हैं के अनुकूलन:
https://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site
किस प्रकार का आवेदन? क्या आपके पास डेटाबेस है? क्या आप गणना कर रहे हैं? पूरी तरह से व्यक्तिपरक प्रश्न .... –
एप्लिकेशन 82 वेबपृष्ठों, 34 रिपोर्ट (ग्राफिकल और टेक्स्ट दोनों) के साथ एक एएसपीनेट वेब एप्लिकेशन है, डीबी एसक्यूएल सर्वर 2005 है। औसत पर पृष्ठ के लिए प्रतिक्रिया समय लगभग 4-5 सेकेंड है । – HotTester
सभी यूआर उत्तरों के लिए धन्यवाद और मैं आपके सभी सुझावों की सराहना करता हूं ... मैं निम्नलिखित समाधान के लिए गया: सबसे पहले मैंने एक क्वेरी ऑप्टिमाइज़ेशन टूल द्वारा सभी प्रश्नों को अनुकूलित किया। दूसरी बात मैंने एप्लिकेशन को होस्ट करने वाले सर्वर की स्मृति में वृद्धि की (पहले यह 512 एमबी रैम था ... और अब 2 जीबी)। आखिर में मैंने सभी अवांछित व्यूस्टेट को दूर कर दिया ...--> नतीजा यह है कि एप्लिकेशन काफी तेजी से चल रहा है और औसत प्रतिक्रिया समय अब 1-2 सेकंड है। फिर भी अगर किसी को आपके स्वागत के लिए कुछ और अंक मिलते हैं तो – HotTester