2009-07-17 14 views
8

अपने आवेदन पर, एक ASP.NET MVC आवेदन में ASP.NET Tracing सक्षम करने के बाद, समय गणना के आंकड़ों को बंद मैं उस पृष्ठ 7 से 9 के बीच सेकंड लोड करने के लिए ले जा रहा है है 5000मैं एएसपी.नेट एमवीसी में एक पूर्ण trace.axd कैसे उत्पन्न कर सकता हूं?

का एक पहलू से थे। यह आईआईएस लॉग फ़ाइलों में फायरबग और "टाइम-लेड" फ़ील्ड दोनों द्वारा पुष्टि की जाती है। (यह केवल क्लाइंट पर लौटने वाला पृष्ठ है, कोई लेआउट, डोम, या स्क्रिप्ट निष्पादन नहीं।)

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

मुझे लगता है कि ऐसा इसलिए है क्योंकि Trace.axd को वेबफॉर्म के साथ दिमाग में बनाया गया था, और एमवीसी पारंपरिक पृष्ठ जीवन चक्र को छोड़ देता है।

फिर भी अगर मैं OnActionExecuting/OnActionExecuted की शुरुआत और अंत में कस्टम निशान जोड़ता हूं, तो समय 0.1 सेकंड से भी कम है।

क्या किसी को पता है कि एएसपी.नेट एमवीसी में मुझे trace.axd आउटपुट रिपोर्ट सटीक निष्पादन के समय के लिए हुक करने की आवश्यकता होगी?

उत्तर

7

यह हो सकता है कि कार्रवाई विधि का समय निष्पादन का बड़ा हिस्सा न हो। OnResultExecuting/OnResultExecuted के बीच का समय जांचने का प्रयास करें। यह मूल रूप से HTML में पृष्ठ को प्रस्तुत करने का समय है जबकि OnActionExecuting/OnActionExecuted (मूल रूप से) दृश्य के लिए डेटा सेट करने का समय है।

ध्यान दें कि यदि आप LINQ का उपयोग कर रहे हैं, तो डेटा क्वेरी स्वयं को तब तक स्थगित कर दिया जा सकता है जब तक पृष्ठ प्रस्तुत नहीं किया जाता है (मॉडल गणना)। यही है, धीमापन पृष्ठ जटिलता के कारण नहीं हो सकता है लेकिन परिणाम निष्पादित करने में समय लेने पर डेटा पहुंच भी हो सकती है।

+1

+1 आलसी लोडिंग के बारे में अच्छा बिंदु – RedFilter

+0

Yup, OnResultExecuted 9 सेकंड की देरी दिखाता है। अब यह पता लगाने के लिए क्यों ... (मैं हमेशा मॉडल को सौंपने से पहले अपने लिंक को टॉलीस्ट()। इसलिए यह निष्पादित नहीं किया गया है। मुझे लगता है कि मैं अपने क्रैपी नेस्टेड मास्टर पेज अपराधी हो सकता हूं।) – Portman

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

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