जैसा कि कई लोगों ने ध्यान दिया है, उच्च परिशुद्धता स्टॉपवॉच क्लास को "यह कितना समय लगता है?" जबकि डेटटाइम क्लास को प्रश्न का जवाब देने के लिए डिज़ाइन किया गया है "डॉक्टर कौन शुरू करता है?" इस काम के लिए सही उपकरण का उपयोग करें।
हालांकि, टाइमर सही होने के बजाय सही समय को सही ढंग से मापने की समस्या के लिए और भी कुछ है। आपको यह भी सुनिश्चित करना होगा कि आप माप रहे हैं कि आप वास्तव में मापना चाहते हैं।उदाहरण के लिए, पर विचार करें:
// start the timer
M();
// stop the timer
// start another timer
M();
// stop the timer
वहाँ दो कॉल के समय के बीच एक महत्वपूर्ण अंतर होने जा रहा है? संभवतः हाँ। याद रखें, पहली बार एक विधि कहा जाता है घबराना मशीन कोड में आईएल से संकलित करने के लिए है। इसमें समय लगता है। एक पद्धति के लिए पहली कॉल कुछ मामलों बाद के हर एक साथ रखा कॉल की तुलना में कई गुना अब में हो सकता है।
तो जो माप "सही" है? पहला माप? दूसरा? उनमें से एक औसत? यह इस बात पर निर्भर करता है कि आप के लिए अनुकूलित करने का प्रयास कर रहे हैं। यदि आप तेज़ स्टार्टअप के लिए अनुकूलित कर रहे हैं तो आप जिट टाइम के बारे में बहुत अधिक परवाह करते हैं। आप अनुकूलित कर रहे हैं, तो के लिए समान पृष्ठों की संख्या एक गरम-अप सर्वर पर प्रति सेकंड की सेवा तो आप बिल्कुल JIT समय के बारे में परवाह नहीं है और करने के लिए अपने परीक्षण डिजाइन करने दिया जाना चाहिए यह उपाय नहीं। सुनिश्चित करें कि आप उस चीज़ को माप रहे हैं जिसके लिए आप वास्तव में अनुकूलित कर रहे हैं।
स्रोत
2010-09-07 21:09:53
इस के लिए सर्वश्रेष्ठ उपकरण Redgate प्रोफाइलर या एक है कि दृश्य स्टूडियो के संस्करणों में से एक के साथ आता है की तरह वास्तविक प्रोफ़ाइल उपकरण हैं। इसकी कमी के लिए, एंथनी ने कहा कि आपकी सबसे अच्छी शर्त –
@ जॉर्ज - बड़े परिचालनों के लिए या देखे जाने का समय कहां सही हो सकता है, लेकिन शॉर्ट कोड स्निपेट के लिए, उदाहरण के लिए 10,000 बार कुछ करने का सबसे तेज़ तरीका क्या है ... प्रोफाइलर सक्रिय रूप से हस्तक्षेप करते हैं और शायद सटीक परिणाम प्राप्त करने के लिए सबसे अच्छा तरीका नहीं हैं। –
पर्याप्त उचित, अच्छा बिंदु। –