windows下C语言获取精确到毫秒的时间的几个接口的测试
来源:互联网 发布:华为认证云计算 编辑:程序博客网 时间:2024/06/04 18:59
本文中使用的源代码转自: 《C语言如何获得精确到毫秒的时间》,有改动。
首先感谢那位作者,提供了很多信息。
直接上代码
#include <windows.h>#include <stdio.h>#include <time.h> int main() { { DWORD start, stop; start = GetTickCount(); Sleep(3000); stop = GetTickCount(); printf("GetTickCount: %lu ms\n", stop - start); } { LARGE_INTEGER li; LONGLONG start, end, freq; QueryPerformanceFrequency(&li); freq = li.QuadPart; QueryPerformanceCounter(&li); start = li.QuadPart; Sleep(3000); QueryPerformanceCounter(&li); end = li.QuadPart; int useTime =(int)((end - start) * 1000 / freq); printf("QueryPerformanceX: %d ms\n", useTime); } { SYSTEMTIME t1, t2; GetSystemTime(&t1); Sleep(3000); GetSystemTime(&t2); printf("GetSystemTime: %u ms\n", ((t2.wMinute - t1.wMinute) * 60 + t2.wSecond - t1.wSecond) * 1000 + t2.wMilliseconds - t1.wMilliseconds); } { int t1, t2; t1 = clock(); Sleep(3000); t2 = clock(); printf("clock: %d ms\n", t2 - t1); } return 0;}
使用了花括号来让一些同名变量变成互不干扰的局部变量,不必在意。
运行环境:三代I3 win7 x64
运行结果:GetTickCount接口比较诡异,得到结果几乎总是2995或者3011;QueryPerformanceX接口则经常少了几ms,大概在2993~3000;GetSystemTime接口和clock接口则很准确,只有一次出现了3001,也属于正常误差。
看来以后就用这两个了。
如有错漏,欢迎指正。
0 0
- windows下C语言获取精确到毫秒的时间的几个接口的测试
- C语言如何获得精确到毫秒的时间
- C语言如何获得精确到毫秒的时间
- C语言如何获得精确到毫秒的时间
- C语言如何获得精确到毫秒的时间
- C语言如何获得精确到 毫秒 的时间
- C语言如何获得精确到毫秒的时间
- new Date()获取的时间精确到毫秒
- C与Java中取精确到毫秒的时间
- 【c#】将DataTable的时间精确到毫秒
- 获取精确毫秒的时间间隔
- Windows下精确到微秒的系统时间获取
- c/c++ 获取时间, 精确到毫秒
- Windows下精确获取程序的运行时间可精确到微妙
- VC获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法
- VC获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法
- 如何获取精确到毫秒的当前时间以及 日期与时间的相互转化
- VC获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法
- as3学习笔记1:Embed嵌入图片
- C++面试题集锦
- GTK+ events and signals
- leetcode: Pascal's Triangle II
- C++ 中的hashmap
- windows下C语言获取精确到毫秒的时间的几个接口的测试
- c# DataRow添加到DataTable
- ios推送通知
- JS禁用浏览器退格键
- NYOJ 467 中缀式变后缀式
- DataRowCollection添加到DataTable
- C#多线程、跨线程与线程安全的示例详解
- Do you really know what means initialization? “初始化 定义 赋值” 之间的联系与区别
- Android 加载gif动画