首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++计时的纳秒精度

C++计时的纳秒精度
EN

Stack Overflow用户
提问于 2013-07-10 10:10:45
回答 2查看 5.5K关注 0票数 2

在C++中有没有一种获得纳秒精度的方法?相当于Java中纳秒计时器(System.nanotime)的东西。

EN

回答 2

Stack Overflow用户

发布于 2013-07-10 10:19:21

如果您使用的是Windows/Visual (它可能不会实现std::chrono,至少在VS2010中不会实现),您可以使用QueryPerformanceCounterQueryPerformanceFrequency来获得对定时任务的最高精度:

代码语言:javascript
复制
LARGE_INTEGER freq, counter1, counter2;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&counter1);
task();
QueryPerformanceCounter(&counter2);
long double elapsed = (long double) (counter2.QuadPart - counter1.QuadPart) / (long double) freq.QuadPart;
票数 3
EN

Stack Overflow用户

发布于 2013-07-10 10:16:19

在C++11实现中,您应该能够使用std::chrono

在linux和其他几种Unix版本中,clock_gettime还将为您提供纳秒精度的时间。在windows中有GetSystemTime,它提供毫秒精度。

然而,就像他们一样,它依赖于实际的OS/Library/etc,如果你实际得到纳秒、微秒、毫秒或其他精度--时间通常用nanoseconds表示,但这不一定会给你很高的精度--它可能每“滴答”跳1000000或10000或14718 ns。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17567953

复制
相关文章

相似问题

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