2009-04-22 16 views
7

पर स्टार्टअप प्रदर्शन को बेहतर बनाने के लिए कैसे मैं विशेष रूप से धीमी वर्चुअल वेब होस्ट (नाम रोक दिया गया है) का उपयोग कर रहा हूं जहां डिस्क प्रदर्शन बहुत खराब हो सकता है। इस प्रकार, मेरी एएसपी.Net वेब साइटों पर पहली हिट लोड करने में 1+ मिनट लग सकते हैं। (प्रारंभिक लोड के बाद, यह सब रैम और ठीक है।)IIS/ASP.Net

मुझे आश्चर्य है कि क्या कोई व्यक्ति साइट को प्री-लोड करने के लिए आईआईएस को निर्देश देने का तरीका जानता है? सार है, पहली हिट अनुकरण?

मैंने सभी प्रीकंपिलेशन सामग्री के साथ खेला है, यह मदद करता है, लेकिन यह उपरोक्त के लिए एक विकल्प नहीं है।

धन्यवाद!

+0

ऐसा लगता है कि एएसपीनेट 4.0 में इसके लिए बेहतर समर्थन है: http://www.asp.net/learn/whitepapers/aspnet40/#_Toc223325464 –

+2

मेरा समाधान अब हैक का थोड़ा सा है लेकिन इससे मदद मिलती है। मैं एक साइट निगरानी सेवा का उपयोग करता हूं जो हर 30 मिनट में एक यूआरएल हिट करता है। –

उत्तर

3

क्या आपके एप्लिकेशन को रीसायकल करने की आवश्यकता है? सभी रीसायकल विकल्प आईआईएस कॉन्फ़िगरेशन में हैं और आपके एप्लिकेशन के लिए उपयुक्त होने के लिए समायोजित किया जा सकता है।

आदर्श परिदृश्य सभी एप्लिकेशन रीसायकल को हटाना होगा ताकि एप्लिकेशन हमेशा लोड हो। रीसाइक्लिंग तब होता है जब web.config फ़ाइल बदल दी गई हो या एप्लिकेशन का एक नया संस्करण तैनात किया गया हो।

यदि पिछले उत्तर के अनुसार दैनिक रीसाइक्लिंग की आवश्यकता होती है, तो एप्लिकेशन को रीसायकल करने के लिए बैच फ़ाइल का उपयोग किया जा सकता है और यह एप्लिकेशन के यूआरएल के साथ iexplore.exe को "प्री-लोड" करने के लिए भी कॉल कर सकता है।

0

आपके पास बैच फ़ाइल क्यों नहीं हो सकती है जिसमें आईआईएस रीसेट हो और इसमें प्रत्येक दिन एक निश्चित समय पर निष्पादित करने के लिए शेड्यूल करें (जब आपके सिस्टम पर कोई उपयोगकर्ता नहीं है)?

0

यदि आपके प्रदाता के पास वेब सर्वर को पुनरारंभ करते समय आपके लिए हुक करने का कोई तरीका हो सकता है, तो वेब सर्वर पुनरारंभ करने के बाद आपके पास बैच फ़ाइल/स्क्रिप्ट फ़ाइल हो सकती है। उस विशेष असेंबली को स्मृति में प्राप्त करने के लिए आपको केवल अद्वितीय एएसपी.NET असेंबली फ़ाइलों को हिट करने की आवश्यकता होगी। तो यदि आपके पास 10 पेज वाले 1 असेंबली हैं, तो बस पृष्ठों में से एक को दबाएं। यह पर्याप्त होना चाहिए। यदि आपके पास 1 से अधिक असेंबली हैं, तो उन असेंबली को स्मृति में लोड करने के लिए प्रत्येक असेंबली में 1 पृष्ठ दबाएं।

यदि आप इसे अपने प्रदाता पर नहीं ले सकते हैं, तो आपको इसे स्वयं करने के लिए एक बेहतर तरीका सोचना होगा (यानी जब प्रदाता वेब सर्वर को रीसेट कर रहा है और आपकी मशीन में शेड्यूल कार्य को उन लोगों को मारने के लिए सीखना है पेज खुद)।

0

आप कितनी साइट को पहले से लोड करना चाहते हैं? कितने पृष्ठ?

आप इस मुद्दे के "संकलन" भाग को हटाने के लिए साइट को पूर्व-संकलित कर सकते हैं, लेकिन यदि साइट काफी बड़ी है, तो यह साइट को "प्री-लोड" करने का एहसास नहीं हो सकता है। यह विशेष रूप से सच होगा यदि साइट एकाधिक होस्ट पर चलती है।

0

पहली बार जब आप संकलित एएसपी.NET अनुप्रयोग से किसी पृष्ठ को अपने असेंबली संशोधित करने के बाद अनुरोध करते हैं, तो सामान्य पृष्ठ अनुरोध की तुलना में प्रक्रिया करने में बहुत अधिक समय लगता है।

इसलिए आपकी समस्या का एक आसान समाधान किसी भी संशोधन के तुरंत बाद आपके आवेदन से किसी पृष्ठ का अनुरोध करना है। इस तरह आप किसी पृष्ठ का अनुरोध करने वाले पहले व्यक्ति हैं, और आप अपने उपयोगकर्ताओं की बजाय लंबी प्रतीक्षा करते हैं।