C++ में हाई रेजोल्यूशन टाइमर बनाने के लिए <chrono> लाइब्रेरी का उपयोग करें। यह नैनोसेकंड प्रिसिजन प्रदान करती है। std::chrono::high_resolution_clock सिस्टम में उपलब्ध सबसे उच्च रेजोल्यूशन वाली क्लॉक है।
उदाहरण कोड
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main() {
auto start = high_resolution_clock::now();
// कुछ कम्प्यूटेशनल वर्क (खाली लूप)
for (int i = 0; i < 200000000; i++) {
// खाली लूप
}
auto end = high_resolution_clock::now();
// नैनोसेकंड में अंतर
auto duration_ns = duration_cast<nanoseconds>(end - start).count();
cout << "Time difference: " << duration_ns << " nanoseconds" << endl;
// अन्य यूनिट्स में भी देख सकते हैं
auto duration_us = duration_cast<microseconds>(end - start).count();
auto duration_ms = duration_cast<milliseconds>(end - start).count();
cout << "Time difference: " << duration_us << " microseconds" << endl;
cout << "Time difference: " << duration_ms << " milliseconds" << endl;
return 0;
}
आउटपुट
Time difference: 536395307 nanoseconds Time difference: 536395 microseconds Time difference: 536 milliseconds
मुख्य क्लासेस:
| क्लास | विवरण |
|---|---|
high_resolution_clock | सबसे उच्च रेजोल्यूशन वाली क्लॉक |
steady_clock | मोनोटोनिक क्लॉक (समय पीछे नहीं जाता) |
system_clock | वॉल क्लॉक टाइम (कैलेंडर टाइम) |
duration | समय अवधि दर्शाता है |
time_point | समय में एक बिंदु दर्शाता है |
बेस्ट प्रैक्टिस: बेंचमार्किंग के लिए steady_clock बेहतर है क्योंकि यह सिस्टम टाइम चेंज से प्रभावित नहीं होती।