当前位置:  开发笔记 > 编程语言 > 正文

使用C++和Linux的高分辨率计时器?

如何解决《使用C++和Linux的高分辨率计时器?》经验,为你挑选了3个好方法。

在Windows下也有像一些方便的功能,QueryPerformanceCountermmsystem.h创建高分辨率定时器.Linux有类似的东西吗?



1> Nik Reiman..:

之前有人问过它- 但基本上,你可以使用一个boost ptime函数,或者一个POSIX clock_gettime()函数,它可以起到基本相同的作用.


@lothar:+1表示ACE库的指针,谢谢.你给的链接是陈旧的,这是一个新的链接:http://www.dre.vanderbilt.edu/Doxygen/Stable/libace-doc/a00227.html

2> grieve..:

对于Linux(和BSD),您希望使用clock_gettime().

#include 

int main()
{
   timespec ts;
   // clock_gettime(CLOCK_MONOTONIC, &ts); // Works on FreeBSD
   clock_gettime(CLOCK_REALTIME, &ts); // Works on Linux
}

请参阅:此答案以获取更多信息


当然,您需要了解`CLOCK_MONOTONIC`和`CLOCK_REALTIME`之间的区别 - 前者在系统启动时将其零点设置为任意值,因此仅用于两个`CLOCK_MONOTONIC`测量之间的相对比较(但不受壁钟调整的影响)
clock_gettime(CLOCK_MONOTONIC,&ts); 也适用于Linux.

3> tjd..:

这是一个描述如何在Linux和Windows上进行高分辨率计时的链接......不,不要使用RTSC.

https://web.archive.org/web/20160330004242/http://tdistler.com/2010/06/27/high-performance-timing-on-linux-windows

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有