本文首先通过QueryPerformanceFrequency获取高精度计时器的时钟频率,然后通过两次调用QueryPerformanceCounter获取高精度计时器的差值,最后以差值除以时钟频率获取精确计时。

但要注意,时钟频率及计时器的值均为LONGLONG类型,需转换为double后才能计算精确的秒数。

以下为代码:

LARGE_INTEGER frequency;

LARGE_INTEGER start;

LARGE_INTEGER stop;

QueryPerformanceFrequency(&frequency); //获取计时器的时钟频率

QueryPerformanceCounter(&start); //获得计数器初始值

Sleep(10); //耗时操作(暂停10ms)

QueryPerformanceCounter(&stop); //获得计数器终止值

const auto interval = static_cast(stop.QuadPart - start.QuadPart);

const auto timeSpanSecond = interval / frequency.QuadPart; //获取秒数

const auto timeSpanMillisecond = timeSpanSecond * 1000.0; //获取毫秒数

std::cout << "Sleep(10) takes " << timeSpanMillisecond << "ms." << std::endl;

下面为结果:

c++ 准确计时_C++精确计时相关推荐

  1. 【实战】使用 Web Animations API 实现一个精确计时的时钟

    在 JavaScript 中,当事情准时发生时,很自然地会想到使用计时器函数. 但是,当某件事由于其他事情依赖于它而在准确的时刻发生时,你很快就会发现计时器会存在一个不准时的问题.而本文所要介绍的 W ...

  2. windows下的C/C++精确计时

    由于我要测试线性筛法的速度,用上了C/C++精确计时.此时传统的clock()方法不够用了,我们需要另一种测量的办法,即CPUTicks/CPUFreq.如何实现呢? #include <win ...

  3. 单片机0 10秒计时C语言,基于单片机的秒,分,时的精确计时实现

    这个学期接触到了单片机,算是个微处理机,是把计算机的部分功能集成化了的.在生活中随处可见:想厨房用的电磁炉内就集成了单片机的控制,客厅挂的数字万年历也是用单片机实现的!经过了解后,我对此产生了极大的兴 ...

  4. C# Stopwatch实现精确计时

    C#中的Stopwatch类位于Diagnostics空间下,其功能主要是实现对程序运行的精确计时,它的用法比较简单,精确度也很高. 比如当我们写爬虫程序时可以用来计算爬虫爬取的时间:可以用来比较一些 ...

  5. c语言怎么自动计时,C语言精确计时方法

    精确获取时间: QueryPerformanceFrequency() -基本介绍 类型:Win32API 原型:BOOL QueryPerformanceFrequency(LARGE_INTEGE ...

  6. python精确计时_PYTHON在WINDOWS下高精度计时的体会

    2011-02-23 14:51:19 其实也是WINDOWS下的通用办法啦,只不过我用PYTHON表达. 用win32api.GetSystemTime()不是太精确,值15毫秒才变一下,最好用ti ...

  7. python 计时_python运行计时

    广告关闭 回望2020,你在技术之路上,有什么收获和成长么?对于未来,你有什么期待么?云+社区年度征文,各种定制好礼等你! 下面这段程序截取自python high performanceprogra ...

  8. c语言中五子棋怎么计时,五子棋如何计时

    五子棋是起源于中国上古时代的传统黑白棋种之一.下面学习啦小编给你介绍五子棋如何计时,欢迎阅读. 五子棋计时的方法 1. 比赛时限:比赛时限可分为包干制和加秒制(即FISHER制)两种.不论采用何种时限 ...

  9. python time模块计时_python中计时模块timeit的使用方法

    timeit 模块定义了接受两个参数的 Timer 类.两个参数都是字符串. 第一个参数是你要计时的语句或者函数. 传递给 Timer 的第二个参数是为第一个参数语句构建环境的导入语句. 从内部讲, ...

最新文章

  1. git add . 之后 想执行回滚操作(git add 到本地仓库的代码回滚到没有add 之前的操作)
  2. Exchange2007 中Send as 与Send on behalf of 讲解
  3. 一文读懂比特币UXTO,TA其实没那么神秘!
  4. 网络丢包问题排查总结
  5. PSR-2 代码风格规范
  6. python 学习笔记二 搭建ftp服务器
  7. git进入项目目录 windows_Windows下Git 怎么整个文件夹目录上传到代码仓库(不论GitHub、GitLab、Gitee、DevCloud)...
  8. ES6 学习笔记 (1)
  9. 面向对象-属性查找与绑定方法
  10. JCam2 v1.6.0 USB摄像头工具全新发布及使用详解
  11. 学习笔记Android弹框material-dialogs
  12. 4A 统一安全管理平台解决方案。
  13. 大疆精灵4多光谱无人机P4M影像辐射定标方法(二)
  14. SuperSocket实战---使用SuperSocket的FixedHeaderReceiveFilter进行通信
  15. 网络设备配置与管理(华为)基础系列 20190307
  16. 代码是如何编译成程序的?
  17. Linux用户和用户组的管理
  18. Android MessageQueue 底层实现(C++)
  19. VC++获取CPU的名称、主频和核数(附源码)
  20. Pr 入门教程:如何调整肤色?

热门文章

  1. SQLite 表达式(http://www.w3cschool.cc/sqlite/sqlite-expressions.html)
  2. Web Service 一些对外公开的网络服务接口以及http://www.webxml.com.cn/zh_cn/index.aspx
  3. linux共享xp打印机驱动下载,给debian共享winxp下的打印机
  4. 【pytorch】model.train和model.eval用法及区别详解
  5. BM39 序列化二叉树
  6. 贝叶斯、先验估计、后验估计、最大似然估计、最大后验估计
  7. 阿里云物联网平台专题讲座
  8. leetcode笔记:Search in Rotated Sorted Array
  9. FMDB/SQLCipher数据库管理
  10. myisam表锁及锁粒度调节