เพื่อสร้าง High Resolution Timer เราสามารถใช้ Chrono Library ไลบรารีนี้มี High Resolution Clock ที่สามารถนับได้ถึงระดับนาโนวินาที (Nanoseconds)
ในโปรแกรมนี้เราจะดูเวลาการทำงานในหน่วยนาโนวินาที เราจะ取ค่าเวลาในตอนเริ่มต้น แล้ว取อีกครั้งในตอนท้าย แล้วหาความต่างเพื่อได้ Elapsed Time ที่นี่เราใช้ลูปว่าง (Blank Loop) เพื่อหน่วงเวลาสักครู่
ตัวอย่าง
#include <iostream> #include <chrono> typedef std::chrono::high_resolution_clock Clock; 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