2011-09-11 8 views
19

मैं सी # कंसोल एप्लिकेशन में एमवीसी-मिनी-प्रोफाइलर का उपयोग कैसे कर सकता हूं?क्या मैं कंसोल एप्लिकेशन में एमवीसी मिनी प्रोफाइलर का उपयोग कर सकता हूं?

भी उत्सुक है, क्या एमवीसी मिनी प्रोफाइलर ने प्रत्येक वेब पेज के बाईं ओर वास्तविक प्रोफाइल आंकड़े डाले हैं या क्या यह केवल कस्टम जावास्क्रिप्ट कोड मैन्युअल रूप से किया गया है?

मैंने डाउनलोड किया और एमवीसी नमूना चलाया, और वह कोड नहीं मिला जो परिणाम को उस जावास्क्रिप्ट पॉपअप में डालता है।

उत्तर

11

कोर टाइम ऑब्जेक्ट (मिनीप्रोफाइलर) को ठीक से काम करना चाहिए, जैसा कि प्रोफाइल-कनेक्शन हुक आदि होना चाहिए; हालांकि आपको इसकी आवश्यकता होगी;

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

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

+1

@Mark ... तुम उत्पादन में चल रहे इस के किसी भी स्क्रीनशॉट है ? क्या आप इसे मिनीप्रोफाइलर के नवीनतम निर्माण के साथ बनाए रखते हैं? –

+0

@ रिचर्डबी मेरा मुख्य फोकस वेब पर है। मेरे पास कंसोल में कोई विशिष्ट उदाहरण परिदृश्य नहीं है। –

20

हाँ आप कर सकते हैं! और मैंने इसे चलाने के लिए और भी आसान बनाने के लिए एक NuGet पैकेज बनाया है।

बाहर चेक MiniProfiler.Windows: http://nootn.github.com/MiniProfiler.Windows/

भी कैसे की रूपरेखा के लिए एक अच्छा सांत्वना एप्लिकेशन डिजाइन करने के लिए पर एक विस्तृत लेख के लिए

: http://healthedev.blogspot.com.au/2012/07/performance-profiling-console-or-winwpf.html

+2

अरे, आपका नुजेट पैकेज बहुत अच्छा काम करता है। एक छोटी सी बात: मुझे एक असेंबली रीडायरेक्ट का उपयोग करना पड़ा क्योंकि यह नवीनतम से मिनीप्रोफाइलर के पहले संस्करण पर निर्भर करता है। नवीनतम संस्करण पर निर्भर करने के लिए अपने nuspec को अद्यतन करने पर विचार करें। वैसे भी प्रयास के लिए धन्यवाद :) –

+2

यह रिलीज 3.1.1.140 के साथ संगत नहीं लगता है। इसे ठीक करने की कोई योजना है? – Darek

+2

@PaulSuart मुझे असेंबली 'MiniProfiler.Windows.ConsoleProfilingProvider' से 'फॉलोर त्रुटि' विधि 'स्टार्ट' का सामना करना पड़ रहा है 'मिनीप्रोफिलर। विन्डोज़, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, पब्लिककेट टोकन = नल' में कार्यान्वयन नहीं है। "(System.TypeLoadException) \t अपवाद संदेश =" विधि 'प्रारंभ करें' मिनीप्रोफाइलर। विंडोज़। कंसोलप्रोफिलिंग प्रदाता 'असेंबली से' मिनीप्रोफाइलर। विन्डोज़, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, पब्लिककेट टोकन = नल 'में कार्यान्वयन नहीं है । nuspec को कैसे अपडेट करें? मेरे समाधान फ़ोल्डर में कोई .nuspec फ़ाइल नहीं है। MiniProfiler संस्करण 3.1.1.140 है –

0

MiniProfiler V4 (वर्तमान में प्री-रिलीज़) विधि RenderPlainText() है। आप किसी भी अतिरिक्त सेटअप के बिना कंसोल या बहु-क्रम अतुल्यकालिक सर्वर अनुप्रयोग में सीधे इसका इस्तेमाल कर सकते हैं:

public void Foo() 
{ 
    MiniProfiler.Start("Interesting subroutine"); 
    using (MiniProfiler.Current.Step("Step1")) 
    { 
     using (MiniProfiler.Current.Step(nameof(AccessDb))) 
     { 
      AccessDb(); 
     } 
     Thread.Sleep(100); 
    } 
    using (MiniProfiler.Current.Step("Step2")) 
    { 
     Thread.Sleep(100); 
    } 
    MiniProfiler.Stop(); 
    Console.WriteLine(MiniProfiler.Current.RenderPlainText()); 
} 

यह कोड स्निपेट उत्पादन निम्नलिखित का उत्पादन:

2017/08/02 08:44:36 पर

PCName
    दिलचस्प सबरूटीन = 309.2ms
> चरण 1 = 204.8ms
> > AccessDb = 103.8ms (एसक्यूएल = 2 cmds में 56.2ms)
> चरण 2 = 100.9ms

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

अधिक जानकारी की जांच के लिए:

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