হাই প্রিসিশন টাইমার তৈরি করতে `chrono` লাইব্রেরি ব্যবহার করা যায়। এই লাইব্রেরিতে হাই রেজোলিউশন ক্লক (high resolution clock) রয়েছে যা ন্যানোসেকেন্ড (nanoseconds) পর্যন্ত গণনা করতে পারে।
এই প্রোগ্রামে আমরা ন্যানোসেকেন্ডে এক্সিকিউশন টাইম দেখব। প্রথমে একটি টাইম ভ্যালু নিব, তারপর শেষে আরেকটি টাইম ভ্যালু নিব, তারপর পার্থক্য বের করব ইল্যাপসড টাইম (elapsed time) পাওয়ার জন্য। এখানে ব্ল্যাঙ্ক লুপ (blank loop) ব্যবহার করে কিছু সময় স্থগিত করা হয়েছে।
উদাহরণ
#include <iostream>
#include <chrono>
typedef std::chrono::high_resolution_clock Clock;
int main() {
auto start_time = Clock::now();
for(int i = 0; i < 200000000; i++ ) { // একটি খালি লুপ
;
}
auto end_time = Clock::now();
std::cout << "Time difference: " << std::chrono::duration_cast<std::chrono::nanoseconds>(end_time - start_time).count() << " nanoseconds" << std::endl;
}
আউটপুট
Time difference: 536395307 nanoseconds