为了账号安全,请及时绑定邮箱和手机立即绑定

具有C ++和Linux的高分辨率计时器?

/ 猿问

具有C ++和Linux的高分辨率计时器?

料青山看我应如是 2019-10-19 15:26:01

在Windows下,有一些方便的功能,如QueryPerformanceCounterfrom mmsystem.h可以创建高分辨率计时器。Linux有类似的东西吗?



查看完整描述

3 回答

?
莫回无

在此之前有人问过它-但是基本上,您可以使用boost ptime函数,或者可以基本实现相同目的的POSIX clock_gettime()函数。


查看完整回答
反对 回复 2019-10-19
?
幕布斯5086720

对于Linux(和BSD),您想使用clock_gettime()。


#include <sys/time.h>


int main()

{

   timespec ts;

   // clock_gettime(CLOCK_MONOTONIC, &ts); // Works on FreeBSD

   clock_gettime(CLOCK_REALTIME, &ts); // Works on Linux

}


查看完整回答
反对 回复 2019-10-19
?
喵喔喔

在C ++ 11中,使用std::chrono::high_resolution_clock。


例:


#include <iostream>

#include <chrono>

typedef std::chrono::high_resolution_clock Clock;


int main()

{

    auto t1 = Clock::now();

    auto t2 = Clock::now();

    std::cout << "Delta t2-t1: " 

              << std::chrono::duration_cast<std::chrono::nanoseconds>(t2 - t1).count()

              << " nanoseconds" << std::endl;

}

输出:


Delta t2-t1: 131 nanoseconds


查看完整回答
反对 回复 2019-10-19

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信