如何使用C ++和Linux创建高分辨率计时器?

要创建高分辨率计时器,我们可以使用chrono库。该库具有高分辨率时钟。这可以以纳秒为单位。

在此程序中,我们将看到执行时间(以纳秒为单位)。我们将首先获取时间值,最后获取另一个时间值,然后求出差值以获取经过的时间。在这里,我们有时使用空白循环来暂停效果。

示例

#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 << "时差:"
      << std::chrono::duration_cast<std::chrono::nanoseconds>(end_time - start_time).count() << " nanoseconds" << std::endl;
}

输出结果

时差: 536395307 nanoseconds