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

C++时序,自上一秒以来的毫秒数

如何解决《C++时序,自上一秒以来的毫秒数》经验,为你挑选了2个好方法。

我正在研究一个需要详细计时信息的C++应用程序,直到毫秒级.

我们打算使用标准time()函数将时间收集到第二精度.我们还要收集自上一秒给出的毫秒数time().

有谁知道获取这些信息的便捷方法?



1> Justin Rudd..:

如果底层平台支持Boost.DateTime,则具有毫秒和纳秒表示.虽然它使用特定于平台的代码,但它会将这些详细信息保留在您的代码之外.

如果这是一个大问题,他们确实有另一种方式做独立于亚平台的亚秒级分辨率. 这个页面下面几段讨论如何做到这一点.

(来自页面)

例如,假设我们想要使用表示十分之一秒的计数来构造.也就是说,每个刻度是0.1秒.

int number_of_tenths = 5;
//create a resolution independent count -- divide by 10 since there are 
//10 tenths in a second.  
int count = number_of_tenths*(time_duration::ticks_per_second()/10);
time_duration td(1,2,3,count); //01:02:03.5 //no matter the resolution settings



2> Adam Rosenfi..:

由于ANSI C没有定义标准的毫秒精确时间函数,因此没有可解决此问题的可移植解决方案.如果您使用的是Windows,则可以使用GetTickCount(),timeGetTime()或QueryPerformanceCounter()/ QueryPerformanceFrequency().请记住,这些具有不同的准确性和不同的运行时成本.

其他操作系统中还有其他类似的功能; 我不确定它们是不是我的头脑.

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