当前位置: 首页 > news >正文

C语言QueryPerformanceFrequency和QueryPerformanceCounter的用法

类型:Win32API

原型:BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);

           BOOL QueryPerformanceCounter (LARGE_INTEGER *lpCount);

作用:返回硬件支持的高精度计数器的频率。

返回值:非零,硬件支持高精度计数器;零,硬件不支持,读取失败。

注意:需包含windows.h头文件。

用法:在定时前应该先调用QueryPerformanceFrequency()函数获得机器内部计时器的时钟频率。接着在需要严格计时的事件发生前和发生之后分别调用QueryPerformanceCounter(),利用两次获得的计数之差和时钟频率,就可以计算出事件经历的精确时间。


例子:

测试Sleep的精确时间:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main(){
 LARGE_INTEGER ntime;
 LARGE_INTEGER begintime;
 LARGE_INTEGER endtime;
 double time;
 QueryPerformanceFrequency(&ntime);
 QueryPerformanceCounter(&begintime);
 sleep(1);
 QueryPerformanceCounter(&endtime);
 time=(double)(endtime.QuadPart-begintime.QuadPart)/(double)ntime.QuadPart;
 printf("%f\n",time);
 sleep(1);
    system("Pause");
 return 0;
}

结果1.000611

所以Sleep的精度还是比较低的。

相关文章:

  • C语言中使用goto语句
  • C语言中的字符串处理函数
  • C语言获取微秒级的系统时间 gettimeofday timeval timeout
  • C语言中结构体的三种初始化方式以及结构体作为传参传递
  • C语言 解析URL
  • C语言中字符串的几种定义方式
  • C语言中 scanf gets getchar 的区别
  • C语言浅谈unsigned和siged
  • C语言 将字符数组转换为字符串
  • C语言 == != 使用中一个要注意的地方
  • C语言 结构体中使用strcpy方法,以及结构体指针
  • C语言 判断字符是否是一个数字的两种方法
  • C语言 time.h
  • C语言 char* a 与 char a[]
  • C语言 堆栈
  • 2017-08-04 前端日报
  • avalon2.2的VM生成过程
  • AWS实战 - 利用IAM对S3做访问控制
  • Go 语言编译器的 //go: 详解
  • go语言学习初探(一)
  • Java 多线程编程之:notify 和 wait 用法
  • javascript 哈希表
  • socket.io+express实现聊天室的思考(三)
  • Terraform入门 - 3. 变更基础设施
  • ucore操作系统实验笔记 - 重新理解中断
  • vue-loader 源码解析系列之 selector
  • Vue官网教程学习过程中值得记录的一些事情
  • 仿天猫超市收藏抛物线动画工具库
  • 分类模型——Logistics Regression
  • 汉诺塔算法
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 聊聊sentinel的DegradeSlot
  • 前嗅ForeSpider教程:创建模板
  • 提醒我喝水chrome插件开发指南
  • 用 Swift 编写面向协议的视图
  • 优秀架构师必须掌握的架构思维
  • 原生Ajax
  • 积累各种好的链接
  • 进程与线程(三)——进程/线程间通信
  • ​configparser --- 配置文件解析器​
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​Python 3 新特性:类型注解
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (十六)Flask之蓝图
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)一些感悟
  • *1 计算机基础和操作系统基础及几大协议
  • .net framework 4.0中如何 输出 form 的name属性。