मैंने पाया है कि सामान्य घड़ी (), हर कोई यहाँ सलाह देता है, किसी कारणवश बेतहाशा रन से भाग जाता है, यहां तक कि बिना किसी साइड इफेक्ट के स्टैटिक कोड के लिए भी, जैसे कि स्क्रीन पर ड्राइंग या फाइल पढ़ना। ऐसा इसलिए हो सकता है क्योंकि सीपीयू बिजली की खपत के तरीके, ओएस को अलग-अलग प्राथमिकताएं दे रहा है, आदि ...
तो हर बार घड़ी के साथ हर बार एक ही परिणाम प्राप्त करने का एकमात्र तरीका है (मापा कोड को लूप में कई बार (कई मिनटों के लिए) चलाने के लिए, कंपाइलर को इसे अनुकूलित करने से रोकने के लिए सावधानी बरतते हुए: आधुनिक कंपाइलर कोड को रोक सकते हैं एक लूप में चलने वाले साइड इफेक्ट्स के बिना, और इसे लूप से बाहर ले जाएं। जैसे, प्रत्येक पुनरावृत्ति के लिए यादृच्छिक इनपुट का उपयोग करना।
पर्याप्त नमूने एक सरणी में एकत्र किए जाने के बाद, उस सरणी को एक प्रकार, और मध्य तत्व लेता है, जिसे माध्य कहा जाता है। मेडियन औसत से बेहतर है, क्योंकि यह चरम विचलन को दूर फेंकता है, जैसे कि एंटीवायरस सभी सीपीयू को ऊपर ले जाता है या ओएस कुछ अपडेट कर रहा है।
यहां सी / सी ++ कोड के निष्पादन प्रदर्शन को मापने के लिए एक सरल उपयोगिता है, औसत के पास मूल्यों का औसत: https://github.com/san// गेज
मैं अब भी कोड को मापने के लिए एक अधिक मजबूत और तेज़ तरीके की तलाश में हूं। कोई शायद बिना किसी OS के नंगे धातु पर नियंत्रित स्थितियों में कोड चलाने की कोशिश कर सकता है, लेकिन यह अवास्तविक परिणाम देगा, क्योंकि वास्तव में ओएस इसमें शामिल नहीं होता है।
x86 में ये हार्डवेयर प्रदर्शन काउंटर हैं, जिनमें निष्पादित निर्देशों की वास्तविक संख्या शामिल है, लेकिन वे बिना ओएस की मदद के उपयोग करने के लिए मुश्किल हैं, व्याख्या करना मुश्किल है और अपने स्वयं के मुद्दे हैं ( http://archive.gamedev.net/archive/reference/articles /article213.html )। फिर भी वे बोतल की गर्दन की प्रकृति (उस डेटा पर डेटा एक्सेस या वास्तविक गणना) की जांच करने में सहायक हो सकते हैं।