N3376 से:
20.11.7.1 [time.clock.system] / 1:
क्लास की वस्तुएं system_clockसिस्टम-वाइड रीयलटाइम घड़ी से दीवार घड़ी समय का प्रतिनिधित्व करती हैं।
20.11.7.2 [time.clock.steady] / 1:
कक्षा की वस्तुएँ उन steady_clockघड़ियों का प्रतिनिधित्व करती हैं जिनके लिए time_pointभौतिक समय के अग्रिमों के रूप में मूल्यों में कभी कमी नहीं होती है और जिसके time_pointलिए वास्तविक समय के सापेक्ष स्थिर दर पर अग्रिम के मूल्य होते हैं । यही है, घड़ी समायोजित नहीं हो सकती है।
20.11.7.3 [time.clock.hires] / 1:
कक्षा की वस्तुएँ high_resolution_clockसबसे छोटी टिक अवधि के साथ घड़ियों का प्रतिनिधित्व करती हैं। high_resolution_clockके लिए एक पर्याय हो सकता है system_clockया steady_clock।
उदाहरण के लिए, सिस्टम वाइड क्लॉक दिन के समय की बचत के समय जैसी किसी चीज से प्रभावित हो सकता है, जिस बिंदु पर भविष्य में कुछ बिंदु पर सूचीबद्ध वास्तविक समय वास्तव में अतीत का समय हो सकता है। (उदा। अमेरिका में, गिरने के समय में एक घंटा पीछे चला जाता है, इसलिए उसी घंटे को "दो बार" अनुभव किया जाता है) हालांकि, steady_clockऐसी चीजों से प्रभावित होने की अनुमति नहीं है।
इस मामले में "स्थिर" सोचने का एक और तरीका 20.11.3 [time.clock.req] / 2 की तालिका में परिभाषित आवश्यकताओं में है:
तालिका 59 में C1और C2घड़ी प्रकार निरूपित करें। t1और t2वे मान लौटाए जाते हैं C1::now()जहाँ कॉल लौटने t1से पहले t2कॉलिंग वापस होती है और ये दोनों कॉल पहले होते हैं C1::time_point::max()। [नोट: इसका मतलब यह है C1कि चारों ओर लपेट नहीं किया t1और t2। ध्यान दें]
अभिव्यक्ति: C1::is_steady
रिटर्न: const bool
परिचालन शब्दार्थ: trueअगर t1 <= t2हमेशा सच होता है और घड़ी की टिक के बीच का समय स्थिर होता है, अन्यथा false।
यह सभी मानक उनके मतभेदों पर है।
यदि आप बेंचमार्किंग करना चाहते हैं, तो आपका सबसे अच्छा दांव शायद होने वाला है std::high_resolution_clock, क्योंकि यह संभावना है कि आपका प्लेटफॉर्म QueryPerformanceCounterइस घड़ी के लिए एक उच्च रिज़ॉल्यूशन टाइमर (जैसे विंडोज पर) का उपयोग करता है । हालाँकि, यदि आप बेंचमार्किंग कर रहे हैं, तो आपको वास्तव में अपने बेंचमार्क के लिए प्लेटफ़ॉर्म विशिष्ट टाइमर का उपयोग करने पर विचार करना चाहिए, क्योंकि विभिन्न प्लेटफ़ॉर्म इसे अलग तरीके से संभालते हैं। उदाहरण के लिए, कुछ प्लेटफ़ॉर्म आपको आवश्यक घड़ी की संख्या निर्धारित करने के कुछ साधन प्रदान कर सकते हैं, जिसमें आवश्यक कार्यक्रम (उसी सीपीयू पर चलने वाली अन्य प्रक्रियाओं से स्वतंत्र) शामिल हैं। बेहतर अभी तक, अपने हाथों को एक वास्तविक प्रोफाइलर पर प्राप्त करें और इसका उपयोग करें।