2009-08-16 16 views

उत्तर

13

की जांच:

Stopwatch sw = new Stopwatch(); 
sw.Start(); 

// your code here 

sw.Stop(); 
TimeSpan elapsedTime = sw.Elapsed; 
14

Stopwatch कक्षा .NET में उच्च-परिशुद्धता समय प्रदान करती है। यह लगभग 100 नैनोसेकंड (मिलीसेकंड के अंश) की संवेदनशीलता के साथ समय को मापने में सक्षम है। सटीक रिज़ॉल्यूशन प्राप्त करने के लिए, Stopwatch.Frequency का मान पढ़ें।

var timer = System.Diagnostics.Stopwatch.StartNew(); 
// Run code here. 
var elapsed = timer.ElapsedMilliseconds. 

इसके अलावा, बार-बार (के रूप में कई बार के रूप संभव है) अपने कोड को चलाने के लिए एक बेहतर औसत समय प्राप्त करने के लिए, साथ ही सीपीयू लोड में उतार चढ़ाव के प्रभाव को कम करने के लिए कर लें। बाहर Stopwatch वर्ग

8

के रूप में अन्य लोगों ने कहा, Stopwatch वर्ग चीजों की सरल समय टीम के लिए अच्छा है। अन्य बिट्स हालांकि ध्यान में रखना:

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

आप मानदंड में रुचि रखते हैं, मैं MiniBench परियोजना जो मैं कुछ बिंदु पर फिर से काम करने के लिए गोल पाने चाहिए - यह काफी नहीं है, जहां मैं यह करना चाहते है अंत में, लेकिन यह एक शुरुआत है। मैं this blog post में इसके साथ क्या हासिल करना चाहता हूं इसके बारे में और बात करता हूं।

+0

मिनीबेंच, जॉन के लिए व्यक्तिगत धन्यवाद - यह मेरे लिए अमूल्य टूल बन गया है। –

+0

@ सी रोजर्स: आपने शायद इसे तब से अधिक इस्तेमाल किया है! मैं वास्तव में कुछ समय वापस आऊंगा ... लिखने के लिए इस पल के लिए ले लिया गया है हालांकि :( –

0

मैं आपके आवेदन की गति का परीक्षण करने और धीमी कोड खोजने के लिए ANTS जैसे एक प्रोफाइलिंग टूल का उपयोग करने की सलाह देता हूं। यह आपको निष्पादन समय के लाइन-दर-लाइन परीक्षण करने की अनुमति देगा।

0

यदि आप सरल चाहते हैं, तो बस इसके आस-पास एक एन-इटेशन लूप डालें और स्टॉपवॉच (या केवल एक कलाई घड़ी) का उपयोग करें और एन द्वारा विभाजित करें। उदाहरण के लिए, यदि आप माइक्रोसेकंड चाहते हैं, तो एन = 1000000 दें। यदि आप चिंतित हैं लूप के ऊपरी हिस्से के बारे में, इसे 10 के कारक द्वारा अनलोल करें।

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