首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自多个数据源的时间

来自多个数据源的时间
EN

Stack Overflow用户
提问于 2012-06-22 10:07:43
回答 1查看 71关注 0票数 1

我有一台带有C++项目的机器,它是另一台正在发送时间戳的机器的套接字客户端,它是一个无符号整数,表示自午夜以来的毫秒数。

代码语言:javascript
复制
unsigned int time;

如何将此时间值与系统时间进行比较,并以毫秒为单位获得两者之间的差值?随着时间的推移,这种差异应该是“相对”恒定的。

系统时间的精确度必须在1毫秒以内,因为如果差异扩大到(例如) 20毫秒,我就知道有问题,代码需要注意。

我能够使用Windows.h任何建议和示例代码都将不胜感激!

谢谢!!

EN

回答 1

Stack Overflow用户

发布于 2012-06-22 10:17:34

也许这会对你有所帮助。我在学校做的一个项目中使用了它,以比较计算最大子序列和的几种算法的效率。这是一个利用了QueryPerformanceCounter函数的类,它包含在Windows.h中,我相信它在亚毫秒级的范围内是准确的。这是我在C++中使用Windows.h所能想到的最准确的方法。

我是从Google Code上的一个名为gpufrustrum的开源项目中获得的

代码语言:javascript
复制
#include <windows.h>

class CPrecisionTimer
{
  LARGE_INTEGER lFreq, lStart;

public:
  CPrecisionTimer()
  {
    QueryPerformanceFrequency(&lFreq);
  }

  inline void Start()
  {
    QueryPerformanceCounter(&lStart);
  }

  inline double Stop()
  {
    // Return duration in seconds...
    LARGE_INTEGER lEnd;
    QueryPerformanceCounter(&lEnd);
    return (double(lEnd.QuadPart - lStart.QuadPart) / lFreq.QuadPart);
  }
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11149360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档