2011-12-16 11 views
9

मैंने बस अपनी साइट पर mvc-mini-profiler (धन्यवाद SO!) को जोड़ दिया और यह देखने के लिए चारों ओर देख रहा था कि मैंने इस बिंदु तक कितनी अच्छी तरह से किया है (यह लिनक के साथ मेरी पहली बड़ी बात है और एमवीसी)। अब तक सबकुछ अच्छा दिख रहा है, हालांकि मैं हमेशा प्रतिक्रिया समय सुधारने के तरीकों की तलाश में हूं। इस बिंदु पर ऐसा लगता है कि मुझे प्राप्त होने वाला एकमात्र बड़ा बढ़ावा मेरे प्रत्येक पृष्ठ पर व्यक्तिगत विचार प्रस्तुत करने में लगने वाले समय को कम करने से होगा।एमवीसी रेंडर स्पीडअप

profiler screeny

तुम मेरे Screeny से देख सकते हैं Blog देखने का प्रतिपादन लंबे समय तक चलने काम है कि। मुझे पता है कि 30 एमएमएस पहले से ही वास्तव में तेज़ है, लेकिन मैं शर्त लगा रहा हूं कि अभी भी कुछ चालें हैं जिन्हें मैं इन नंबरों को कम करने के लिए खींच सकता हूं।

तो सवाल यह है: मैं दृश्य प्रस्तुत करने के समय को कैसे कम कर सकता हूं? मुझे पता है कि HttpRuntime.Cache जैसे कुछ में गतिशील विचारों की कैशिंग मदद कर सकती है, लेकिन मैं स्थिर दृश्य प्रतिपादन के लिए कई एमएस अवधि भी देख रहा हूं। अपने विचारों के प्रस्तुत समय को कम करने के लिए आप किस तकनीक का उपयोग करते हैं?

+0

क्या आप डीबी से दृश्य में वस्तुओं का निर्माण कर रहे हैं? आपके कोड में क्या हो रहा है इसके बारे में किसी भी विचार के बिना सुझाव देना मुश्किल है। –

+0

क्या आप अपना परीक्षण फिर से चला सकते हैं लेकिन यह सुनिश्चित कर लें कि आप 'रिलीज' के तहत एमवीसी ऐप चला रहे हैं। 'ब्लॉग' कितना जटिल है? क्या यह कई बाल क्रियाओं या आंशिक को बुला रहा है? – Omar

+0

@TravisJ उनमें से कुछ में, हां। दूसरों में मुझे बस स्थिर विचार मिल रहे हैं। – JesseBuesking

उत्तर

3

मैं 2 बातें सुझाव है (यदि आप इसे अभी तक नहीं किया है तो) ...

  1. अप्रयुक्त ViewEngines निकालें। इसलिए यदि आपकी परियोजना केवल रेज़र व्यू इंजन का उपयोग करती है, तो इसे application_Start() पर global.asax में करें;

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

    या

    ViewEngines.Engines.Add(new WebFormViewEngine()); 
    

    अगर आप WebFormsViewEngine का उपयोग केवल

  2. सबसे बड़ी improvment OutputCacheAttribute उपयोग करने के लिए एचटीएमएल कैश करने के लिए है। मुझे लगता है कि अपने ब्लॉग हर अनुरोध पर परिवर्तन न;)

    public class BlogController : Controller 
    { 
        [OutputCache] 
        public ActionResult Index() 
        { 
         // do something here 
         return View(); 
        } 
    } 
    

आप कैश-अवधि आदि सेट कर सकते। जांचें: MSDN - OutputCacheAttribute

+0

कैशिंग को अनदेखा करने के लिए '[आउटपुट कैश] 'का कारण क्या होगा?जब मैं 60 वर्ष की अवधि निर्धारित करता हूं, ऐसा लगता है कि पहले प्रस्तुत करने के बाद हर बार अधिक समय लगता है (प्रत्येक रेंडर पर समय पहले रेंडर के लिए लिया गया समय के बराबर होता है: ऐसा लगता है कि यह हर बार फिर से संकलित होता है)। – JesseBuesking

+0

वास्तव में स्पष्ट नहीं है कि आपका क्या मतलब है (शायद बहुत थक गया हो);)। अपने कैश एट्रिब्यूट सेटिंग्स को जांचने के लिए अपने "रिटर्न व्यू()" पर ब्रेकपॉइंट दें। कोई प्रदर्शन लाभ नहीं? एक बेहतर लोडिंग समय होना चाहिए। कृपया प्रतिक्रिया दें, क्योंकि यह काम करना चाहिए। – dknaack

+0

जब मैं काम पर करूँगा तो मैं इसे देख लूंगा। मैं वास्तव में सोच रहा हूं कि यह ** देख सकता है ** जैसे धीमा चल रहा है, लेकिन असल में मिनी-प्रोफाइलर परिणाम स्वयं को कैश भी किया जा रहा है। मैं हंसूंगा अगर यह है। इसके अलावा मैं केवल रेज़र का उपयोग कर रहा हूं, इसलिए जब मैं इसमें हूं तो मैं आपके पहले सुझाव के प्रभाव का परीक्षण करूंगा। – JesseBuesking

संबंधित मुद्दे