मैं ASP.NET MVC एप्लिकेशन के प्रदर्शन में सुधार कैसे करूँ?


जवाबों:


311

सुधार के संभावित स्रोतों की संकलित सूची नीचे दी गई है:

सामान्य

  • अपने आवेदन में मेमोरी लीक और प्रदर्शन समस्याओं की खोज करने के लिए एक प्रोफाइलर का उपयोग करें। व्यक्तिगत रूप से मैं डॉटट्रेस का सुझाव देता हूं
  • अपनी साइट को रिलीज़ मोड में चलाएँ, न कि डिबग मोड में, जब उत्पादन में, और प्रदर्शन प्रोफाइलिंग के दौरान भी। रिलीज़ मोड बहुत तेज़ है। डिबग मोड अपने स्वयं के कोड में प्रदर्शन समस्याओं को छिपा सकता है।

कैशिंग

  • CompiledQuery.Compile() अपनी क्वेरी अभिव्यक्तियों के पुन: उपयोग से बचने के लिए पुनरावर्ती उपयोग करें
  • OutputCacheAttribute अनावश्यक और कार्रवाई के निष्पादन को बचाने के लिए कैश-प्रवण-से-परिवर्तन सामग्री का उपयोग न करें
  • अक्सर गैर-संवेदनशील जानकारी के लिए कुकीज़ का उपयोग करें
  • ETags और समाप्ति का उपयोग करें - ActionResultयदि आवश्यक हो तो अपने कस्टम तरीकों को लिखें
  • RouteNameअपने मार्गों को व्यवस्थित करने के लिए उपयोग करने पर विचार करें और फिर अपने लिंक बनाने के लिए इसका उपयोग करें, और अभिव्यक्ति ट्री आधारित एक्शनलिंक विधि का उपयोग न करने का प्रयास करें।
  • रूट रिज़ॉल्यूशन कैशिंग रणनीति को लागू करने पर विचार करें
  • अपने अंदर दोहराव वाला कोड डालें PartialViews, इसे xxxx बार रेंडर करने से बचें : यदि आप एक ही दृश्य में एक ही आंशिक 300 बार कॉल करते हैं, तो शायद इसमें कुछ गड़बड़ है। स्पष्टीकरण और बेंचमार्क

रूटिंग

सुरक्षा

  • ऑथेंटिकेशन ऑथेंटिकेशन का उपयोग करें, ऑथेंटिकेशन टिकट में अपने अक्सर एक्सेस किए गए संवेदनशील डेटा को रखें

दाल

भार संतुलन

  • अपने ऐप इंस्टेंट में क्लाइंट लोड को फैलाने के लिए, रिवर्स प्रॉक्सी का उपयोग करें। (स्टैक ओवरफ्लो HAProxy ( MSDN ) का उपयोग करता है ।

  • बाहरी संसाधनों के प्रसंस्करण पर निर्भर कार्यों को लागू करने के लिए अतुल्यकालिक नियंत्रकों का उपयोग करें ।

ग्राहक की ओर

  • अपने ग्राहक पक्ष को अनुकूलित करें, प्रदर्शन में सुधार के लिए सुझावों के लिए YSlow जैसे उपकरण का उपयोग करें
  • अपने UI के घटकों को अपडेट करने के लिए AJAX का उपयोग करें, जब संभव हो तो पूरे पेज अपडेट से बचें।
  • टाइमआउट में आधारित रीलोड के खिलाफ सामग्री वितरण के लिए एक पब-सब आर्किटेक्चर -आई कोमेट को लागू करने पर विचार करें।
  • यदि संभव हो तो ग्राहक पक्ष के लिए चार्टिंग और ग्राफ पीढ़ी तर्क ले जाएं। ग्राफ निर्माण एक महंगी गतिविधि है। ग्राहक को एक अनावश्यक बोझ से अपने सर्वर की ओर जानें , और आपको नए अनुरोध के बिना स्थानीय स्तर पर ग्राफ़ के साथ काम करने की अनुमति देता है (यानी फ्लेक्स चार्टिंग, jqbargraph , MoreJqueryCharts )।
  • ग्राहक पक्ष पर लोडिंग को बेहतर बनाने के लिए स्क्रिप्ट और मीडिया सामग्री के लिए CDN का उपयोग करें (यानी Google CDN )
  • न्यूनतम - अपने स्क्रिप्ट आकार को बेहतर बनाने के लिए अपने जावास्क्रिप्ट को संकलित करें
  • कुकी के आकार को छोटा रखें, क्योंकि हर अनुरोध पर कुकीज़ सर्वर पर भेजी जाती हैं।
  • जब संभव हो DNS और लिंक प्रीफ़ेक्चर का उपयोग करने पर विचार करें ।

वैश्विक विन्यास

  • यदि आप रेज़र का उपयोग करते हैं, तो अपने Global.asax.cs में निम्न कोड जोड़ें, डिफ़ॉल्ट रूप से, Asp.Net MVC, एक एस्पक्स इंजन और रेज़र इंजन के साथ प्रस्तुत करता है। यह केवल RazorViewEngine का उपयोग करता है।

    ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine());

  • अपने web.config में gzip (HTTP कम्प्रेशन) और स्टैटिक कैश (चित्र, css, ...) जोड़ें <system.webServer> <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true"/> </system.webServer>

  • अप्रयुक्त HTTP मॉड्यूल निकालें
  • जैसे ही यह (आपके web.config में) जेनरेट हो जाता है, तो अपने HTML को फ्लश करें और यदि आप इसका उपयोग नहीं कर रहे हैं, तो इसे देखें <pages buffer="true" enableViewState="false">

6
प्रतीक्षा करें कि मेरा मतलब है कि मैं प्रदर्शन में कमी कर रहा हूं, जब मेरे पास एक ऐसा दृश्य है जो प्रत्येक सूची आइटम के लिए IList और कॉल Render.PartialView ("रो", आइटम) के माध्यम से परेशान करके एक परिणाम प्रदर्शित करता है? मैं कितना खोता हूँ? या मैं प्रदर्शन लाभ कैसे माप सकता हूं?
15

@SDReyes - पब-सब आर्किटेक्चर का अर्थ क्या है ?
मोहम्मद ज़मीर

1
यह अच्छा है। Uber Profiler लिंक हालांकि मृत है। इसके बजाय ओआरएम विशिष्ट प्रोफाइलरों में से एक से जुड़ा होना चाहिए?
शनाबुस

12

मूल सुझाव REST सिद्धांतों का पालन करना है और निम्नलिखित बिंदुओं में से कुछ प्रिंसिपलों को ASP.NET MVC फ्रेमवर्क में शामिल किया गया है:

  1. अपने नियंत्रकों को स्टेटलेस बनाएं - यह एक ' वेब प्रदर्शन / मापनीयता' सुझाव (जैसा कि माइक्रो / मशीन स्तर के प्रदर्शन के विपरीत है) और एक प्रमुख डिजाइन निर्णय है जो आपके अनुप्रयोगों के भविष्य को प्रभावित करेगा - विशेष रूप से इस मामले में यह लोकप्रिय हो जाता है या यदि आपको कुछ चाहिए उदाहरण के लिए गलती सहिष्णुता।
    • सत्र का उपयोग न करें
    • टेम्पर्डटा का उपयोग न करें - जो सत्रों का उपयोग करता है
    • सब कुछ 'समय से पहले' कैश करने की कोशिश न करें।
  2. प्रपत्र प्रमाणीकरण का उपयोग करें
    • प्रमाणीकरण टिकट में अपने अक्सर एक्सेस किए गए संवेदनशील डेटा को रखें
  3. अक्सर गैर-संवेदनशील जानकारी के लिए कुकीज़ का उपयोग करें
  4. अपने संसाधनों को वेब पर उपलब्ध कराएं
  5. अपने जावास्क्रिप्ट को संकलित करें। ऐसा करने के लिए क्लोजर कंपाइलर लाइब्रेरी है (निश्चित रूप से अन्य हैं, बस 'जावास्क्रिप्ट कंपाइलर' भी खोजें)
  6. CDNs (सामग्री वितरण नेटवर्क) का उपयोग करें - विशेष रूप से आपकी बड़ी मीडिया फ़ाइलों और इतने पर।
  7. अपने डेटा के लिए विभिन्न प्रकार के भंडारण पर विचार करें, उदाहरण के लिए, फ़ाइलें, कुंजी / मान स्टोर, आदि - न केवल SQL सर्वर
  8. अंतिम लेकिन कम से कम, प्रदर्शन के लिए अपनी वेब साइट का परीक्षण करें

10

कोड क्लाइंबर और यह ब्लॉग प्रविष्टि, आवेदन के प्रदर्शन को बढ़ाने के विस्तृत तरीके प्रदान करती है।

संकलित क्वेरी आपके एप्लिकेशन के प्रदर्शन को बढ़ाएगी, लेकिन इसमें ASP.NET MVC के साथ कुछ भी सामान्य नहीं है। यह हर db एप्लिकेशन को गति देगा, इसलिए यह वास्तव में MVC के बारे में नहीं है।


8

यह स्पष्ट लग सकता है, लेकिन अपनी साइट को रिलीज़ मोड में चलाएं, न कि डिबग मोड, जब उत्पादन में, और प्रदर्शन प्रोफाइलिंग के दौरान भी। रिलीज़ मोड बहुत तेज़ है। डिबग मोड अपने स्वयं के कोड में प्रदर्शन समस्याओं को छिपा सकता है।


6

LINQ के माध्यम से डेटा एक्सेस करते समय IQueryable पर भरोसा करें ...

सूची () के बजाय AsQueryable () का उपयोग क्यों करें?

... और एक अच्छा रिपोजिटरी पैटर्न का लाभ उठाएं:

रिपॉजिटरी पैटर्न में सबरकार्ड लोड कर रहा है

यह डेटा एक्सेस को यह सुनिश्चित करने के लिए अनुकूलित करेगा कि केवल आवश्यक डेटा लोड किया गया है और जब केवल इसकी आवश्यकता है।


6

पृथ्वी-टूटने का अनुकूलन नहीं है, लेकिन मुझे लगा कि मैं इसे वहां फेंक दूंगा - सीडीएन के लिए उपयोग करें jQuery, आदि

खुद स्कॉटगू के उद्धरण: Microsoft Ajax CDN आपको ASP.NET वेब फॉर्म और ASP.NET MVC अनुप्रयोगों के प्रदर्शन को बेहतर बनाने में सक्षम बनाता है जो ASP.NET AJAX या jQuery का उपयोग करते हैं। यह सेवा मुफ्त में उपलब्ध है, इसके लिए किसी पंजीकरण की आवश्यकता नहीं है, और इसका उपयोग वाणिज्यिक और गैर-वाणिज्यिक दोनों उद्देश्यों के लिए किया जा सकता है।

हम यहां तक ​​कि jQuery का उपयोग करने वाले मॉस में अपने वेबपार्ट के लिए CDN का उपयोग करते हैं।


6

यदि आप NHibernate का उपयोग करते हैं, तो आप प्रश्नों के लिए दूसरे स्तर के कैश को चालू और सेटअप कर सकते हैं और क्वेरीज़ स्कोप और टाइमआउट में जोड़ सकते हैं। और EF , L2S और NHibernate के लिए किक गधा प्रोफाइलर है - http://hibernatingrhinos.com/products/UberProf । यह आपके प्रश्नों को ट्यून करने में मदद करेगा।


आयेंडे ने हाल ही में ब्लॉग किया कि कैसे EF Profiler ने उन्हें एक नमूना MVC ऐप को ट्यून करने में मदद की: ayende.com/Blog/archive/2010/05/17/…
फ्रैंक

5

मैं भी जोड़ूंगा:

  1. स्प्राइट्स का उपयोग करें : स्प्राइट्स एक अनुरोध को कम करने के लिए एक बढ़िया चीज है। आप अपनी सभी छवियों को एक ही में मर्ज करते हैं और स्प्राइट के अच्छे हिस्से को पाने के लिए सीएसएस का उपयोग करते हैं। Microsoft इसे करने के लिए एक अच्छी लाइब्रेरी प्रदान करता है: स्प्राइट और छवि अनुकूलन पूर्वावलोकन 4

  2. कैश योर सर्वर ऑब्जेक्ट : यदि आपके पास कुछ संदर्भ सूचियाँ या डेटा हैं जो शायद ही कभी बदलेंगे, तो आप हर बार क्वेरी डेटाबेस के बजाय मेमोरी में कैश कर सकते हैं।

  3. एंटिटी फ्रेमवर्क के बजाय ADO.NET का उपयोग करें : EF4 or EF5विकास के समय को कम करने के लिए महान हैं, लेकिन यह अनुकूलन करने के लिए दर्दनाक होगा। एंटिटी फ्रेमवर्क की तुलना में संग्रहीत कार्यविधि को अनुकूलित करना अधिक सरल है । इसलिए आपको यथासंभव स्टोर प्रक्रियाओं का उपयोग करना चाहिए। Dapper बहुत अच्छे प्रदर्शन के साथ SQL को क्वेरी और मैप करने का एक सरल तरीका प्रदान करता है।

  4. कैश पेज या आंशिक पृष्ठ : एमवीसी कुछ मापदंडों के अनुसार कैश पेज को कुछ आसान फ़िल्टर प्रदान करता है, इसलिए इसका उपयोग करें।

  5. डेटाबेस कॉल को कम करें : आप एक अद्वितीय डेटाबेस अनुरोध बना सकते हैं जो कई वस्तुओं को लौटाता है। Dapper वेबसाइट पर चेक करें।

  6. हमेशा एक साफ-सुथरा आर्किटेक्चर होना चाहिए : एक छोटे प्रोजेक्ट पर भी एक साफ-सुथरा एन-टियर आर्किटेक्चर रखें। यह आपको अपना कोड साफ रखने में मदद करेगा, और ज़रूरत पड़ने पर इसे अनुकूलित करना आसान होगा।

  7. आप इस टेम्पलेट " नियोस-एसडीसी एमवीसी टेम्प्लेट " पर एक नज़र डाल सकते हैं जो डिफ़ॉल्ट रूप से बहुत सारे प्रदर्शन सुधारों के साथ आपके लिए एक स्वच्छ वास्तुकला बनाएगा (चेक MvcTemplate वेबसाइट की जाँच करें)।


क्या आपको लगता है कि एक संग्रहीत प्रक्रिया को चलाने के लिए बेहतर है जो अधिक परिणाम सेट लौटाता है फिर async मोड में अधिक संग्रहीत प्रक्रियाएं चलाता है?
मुफ्लिक्स

4

सर्वर की ओर से आपके आवेदन को अनुकूलित करने की सभी शानदार जानकारी के अलावा, मैं कहूंगा कि आपको YSlow पर एक नज़र डालनी चाहिए । यह क्लाइंट साइड पर साइट के प्रदर्शन में सुधार के लिए एक शानदार संसाधन है।

यह सभी साइटों पर लागू होता है, न केवल ASP.NET MVC पर।


3

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


2

1: समय प्राप्त करें। जब तक आप जानते हैं कि मंदी कहां है, सवाल का जवाब देने के लिए बहुत व्यापक है। मैं जिस प्रोजेक्ट पर काम कर रहा हूं, उसमें यह सटीक समस्या है; यह भी पता नहीं है कि कुछ खास चीजों में कितना समय लगता है; जब तक हम प्रोजेक्ट में समय नहीं जोड़ते, हम केवल ऐप के धीमे भागों के रूप में अनुमान लगा सकते हैं।

2: यदि आपके पास अनुक्रमिक संचालन हैं, तो हल्के से गुणा करने से डरो मत। ESPECIALLY अगर अवरुद्ध संचालन शामिल हैं। PLINQ यहां आपका मित्र है।

3: प्रकाशन के समय अपने MVC के दृश्यों को पूर्ववत करें ... जो 'पहले पृष्ठ हिट' में से कुछ के साथ मदद करेगा

4: गति के संग्रहित प्रक्रिया / ADO लाभ के लिए कुछ तर्क देते हैं। अन्य लोग ईएफ के विकास की गति के लिए तर्क देते हैं और टियर और उनके उद्देश्य के एक अधिक स्पष्ट seprataion हैं। मैंने एसक्यूएल और वर्कअराउंड को डेटा पुनर्प्राप्ति और भंडारण के लिए स्पार्क्स / व्यू का उपयोग करने के लिए वास्तव में धीमी डिजाइन देखा है। साथ ही, आपकी परीक्षा में कठिनाई होती है। हमारा वर्तमान कोडबेस जिसे हम ADO से EF में परिवर्तित कर रहे हैं, पुराने हैंड-रोलेड मॉडल की तुलना में कोई भी खराब (और कुछ मामलों में बेहतर) प्रदर्शन नहीं कर रहा है।

5: यह कहा, अनुप्रयोग वार्मअप के बारे में सोचो। हमारे ईएफ प्रदर्शन में से अधिकांश को खत्म करने में मदद करने के लिए हम जो भी करते हैं उसका एक विशेष वार्मअप तरीका जोड़ना था। यह किसी भी प्रश्न या किसी भी चीज़ को पहले से निर्धारित नहीं करता है, लेकिन यह मेटाडेटा लोड करने / उत्पन्न करने में बहुत मदद करता है। कोड प्रथम मॉडल के साथ काम करते समय यह और भी महत्वपूर्ण हो सकता है।

6: जैसा कि दूसरों ने कहा है, यदि संभव हो तो सत्र राज्य या ViewState का उपयोग न करें। वे आवश्यक रूप से प्रदर्शन अनुकूलन नहीं हैं जो डेवलपर्स के बारे में सोचते हैं, लेकिन एक बार जब आप अधिक जटिल वेब एप्लिकेशन लिखना शुरू करते हैं, तो आप जवाबदेही चाहते हैं। सत्र राज्य इसे पहले ही निकाल देता है। एक लंबी चलने वाली क्वेरी की कल्पना करें। आप एक नई विंडो खोलने का निर्णय लेते हैं और एक कम जटिल प्रयास करते हैं। ठीक है, आपने सत्र की स्थिति के साथ इंतजार किया होगा, क्योंकि सर्वर उस सत्र के लिए अगले एक पर जाने से पहले पहला अनुरोध किए जाने तक इंतजार करेगा।

7: डेटाबेस के लिए दौर यात्राओं को कम से कम। उन सामानों को बचाएं जिनका आप अक्सर उपयोग करते हैं लेकिन वास्तविक रूप से आपके .Net कैश में नहीं बदलेंगे। जहाँ संभव हो अपने आवेषण / अपडेट को बैचने का प्रयास करें।

7.1: बिना किसी अच्छे कारण के अपने रेज़र व्यू में डेटा एक्सेस कोड से बचें। मैं यह नहीं कह रहा होता अगर मैं इसे नहीं देखता। मॉडल को एक साथ रखने पर वे पहले से ही अपना डेटा एक्सेस कर रहे थे, आखिर वे मॉडल में शामिल क्यों नहीं थे?


2
  1. Gzip लागू करें।
  2. आंशिक विचारों के लिए अतुल्यकालिक प्रतिपादन का उपयोग करें।
  3. डेटाबेस हिट को छोटा करें।
  4. संकलित क्वेरी का उपयोग करें।
  5. एक प्रोफाइलर चलाएं और अनावश्यक हिट्स का पता लगाएं। सभी संग्रहीत प्रक्रियाओं का अनुकूलन करें जो प्रतिक्रिया देने के लिए 1 सेकंड से अधिक समय ले रहे हैं।
  6. कैशिंग का उपयोग करें।
  7. बंडलिंग मिनिमाइज़ेशन ऑप्टिमाइज़ेशन का उपयोग करें ।
  8. एचटीएमएल 5 उपयोगिताओं जैसे सत्र कैश और स्थानीय सामग्री के लिए स्थानीय भंडारण का उपयोग करें।

2

बस मेरे 2 सेंट जोड़ना चाहता था। MVC एप्लिकेशन में URL रूट जेनरेशन को ऑप्टिमाइज़ करने के लिए सबसे प्रभावी तरीका है ... उन्हें उत्पन्न नहीं करना।

हम में से अधिकांश कम या ज्यादा जानते हैं कि हमारे ऐप्स में वैसे भी URL कैसे उत्पन्न होते हैं, इसलिए बस स्थैतिक का उपयोग करें Url.Content("~/Blahblah") के बजाय Url.Action()या Url.RouteUrl(), जहां संभव लगभग 20 गुना की अन्य सभी तरीकों धड़कता है और उससे भी ज्यादा।

पुनश्च। मैंने कुछ हज़ार पुनरावृत्तियों के एक बेंचमार्क को चलाया है और यदि रुचि है तो अपने ब्लॉग पर परिणाम पोस्ट किए हैं ।


1

क्लाइंट पक्ष को अनुकूलित करने के लिए आपके कोलाहल में, डेटाबेस परत के बारे में मत भूलना। हमारे पास एक ऐसा एप्लिकेशन था जो 5 सेकंड से लेकर रात भर 50 सेकंड तक लोड रहता था।

निरीक्षण करने पर, हमने स्कीमा परिवर्तन का एक पूरा गुच्छा बनाया। एक बार जब हम आँकड़ों को ताज़ा करते हैं, तो यह अचानक पहले की तरह संवेदनशील हो जाता है।


0

निम्नलिखित बातें करने के लिए कर रहे हैं

  1. कर्नेल मोड कैश
  2. पाइपलाइन मोड
  3. अप्रयुक्त मॉड्यूल निकालें
  4. runAllManagedModulesForAllRequests
  5. Wwwroot में न लिखें
  6. अप्रयुक्त दृश्य इंजन और भाषा निकालें

0

बंडलिंग और मिनिमेशन का उपयोग करने से आपको प्रदर्शन को बेहतर बनाने में मदद मिलती है। यह मूल रूप से पृष्ठ लोडिंग समय को कम करता है।


0

यदि आप Microsoft ASPure (IaaS या PaaS) पर अपना ASP.NET MVC एप्लिकेशन चला रहे हैं, तो पहली तैनाती से पहले कम से कम निम्नलिखित करें।

  • किसी भी प्रकार के कोड ऋण, दोहराव, जटिलता और सुरक्षा के लिए स्थिर कोड विश्लेषक के साथ अपने कोड को स्कैन करें।
  • एप्लिकेशन इनसाइट को हमेशा सक्षम करें, और एप्लिकेशन में वास्तविक समय के मुद्दों को खोजने के लिए प्रदर्शन, ब्राउज़र और एनालिटिक्स की अक्सर निगरानी करें।
  • स्थिर और कम लगातार परिवर्तन डेटा जैसे छवियाँ, संपत्ति, सामान्य लेआउट आदि के लिए एज़्योर रेडिस कैश को लागू करें।
  • हमेशा एज़्योर द्वारा उपलब्ध कराए गए एपीएम (एप्लीकेशन परफॉरमेंस मैनेजमेंट) टूल्स पर निर्भर रहें।
  • एप्लिकेशन के आंतरिक भागों के बीच संचार प्रदर्शन की जांच के लिए एप्लिकेशन मैप को अक्सर देखें।
  • मॉनिटर डेटाबेस / वीएम प्रदर्शन भी।
  • यदि आवश्यक हो और बजट के भीतर लोड बैलेंसर (क्षैतिज स्केल) का उपयोग करें।
  • यदि आपके आवेदन में पूरी दुनिया में लक्षित श्रोता हैं, तो आने वाले अनुरोध को स्वचालित रूप से संभालने के लिए एज़्योर ट्रैफ़िक प्रबंधक का उपयोग करें और इसे सबसे अधिक उपलब्ध एप्लिकेशन उदाहरण में डायवर्ट करें।
  • कम प्रदर्शन के आधार पर अलर्ट लिखकर प्रदर्शन की निगरानी को स्वचालित करने का प्रयास करें।

0

.Net संस्करण के अनुसार टास्क पैरेलल लाइब्रेरी (TPL) के नवीनतम संस्करण का उपयोग करें । विभिन्न प्रयोजनों के लिए TPL के सही मॉड्यूल का चयन करना है।


0

मैंने उपरोक्त सभी उत्तर दिए और यह सिर्फ मेरी समस्या का समाधान नहीं था।

अंत में, मैंने प्रकाशित प्रोफ़ाइल में PrecompileBeforePublish को सही करने के लिए अपनी धीमी साइट लोडिंग समस्या को हल किया । यदि आप msbuild का उपयोग करना चाहते हैं तो आप इस तर्क का उपयोग कर सकते हैं:

 /p:PrecompileBeforePublish=true

यह वास्तव में बहुत मदद करता है। अब मेरा MVC ASP.NET 10 गुना तेज लोड करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.