Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

วิธีสร้าง High Resolution Timer ด้วย C++ และ Linux


เพื่อสร้าง 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