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

จะสร้างตัวจับเวลาความละเอียดสูงด้วย C ++ และ Linux ได้อย่างไร


ในการสร้างตัวจับเวลาความละเอียดสูง เราสามารถใช้ไลบรารีโครโน ห้องสมุดนี้มีนาฬิกาความละเอียดสูง ซึ่งสามารถนับเป็นนาโนวินาที

ในโปรแกรมนี้ เราจะเห็นเวลาดำเนินการในหน่วยนาโนวินาที เราจะหาค่าของเวลาในตอนแรก จากนั้นหาค่าของเวลาครั้งสุดท้าย จากนั้นหาค่าส่วนต่างเพื่อให้ได้เวลาที่ผ่านไป ในที่นี้เรากำลังใช้การวนซ้ำที่ว่างเปล่าเพื่อหยุดเอฟเฟกต์ชั่วคราวในบางครั้ง

ตัวอย่าง

#include <iostream>
#include <chrono>
typedef std::chrono::high_resolution_clock Clock;
main(){
   auto start_time = Clock::now();
   for(int i = 0; i<200000000; i++) {
      //create one empty loop ;
   }
   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