如何用vc 获取系统时间和程序运行时间

如何用vc 获取系统时间和程序运行时间,第1张

#include <stdio.h>

#include <windows.h>

int main()

{

SYSTEMTIME systime //保存时间的结构体

GetLocalTime(&systime) //本地时间

printf("今天是:")

printf("%d年%d月%d日\n",systime.wYear,systime.wMonth,systime.wDay)

printf("现在时间是:")

printf("%d:%d:%d:%d\n",systime.wHour,systime.wMinute,systime.wSecond,systime.wMilliseconds)

printf("星期:%d\n\n",systime.wDayOfWeek)

GetSystemTime(&systime) //系统时间

printf("现在时间是:")

printf("%d:%d:%d:%d\n",systime.wHour,systime.wMinute,systime.wSecond,systime.wMilliseconds)

return 0

}//一个Windows环境下取得时间的例子!

基本的原理是在执行待测函数之前读取CPU的计数器,执行待测函数之后,再读取一遍,两个计数器之差,再除以CPU主频,就是待测函数执行所用时间。测试精度与CPU主频有关,一般可以精确到微秒量级。

读取CPU计数器的函数:QueryPerformanceCounter()

获取CPU计数器的函数:QueryPerformanceFrequency()

具体 *** 作示范:

首先定义一下所需变量:

LARGE_INTEGER litmp

LONGLONG QPart1,QPart2

double dfMinus, dfFreq, dfTim

在待测函数之前加入:

QueryPerformanceFrequency(&litmp)

dfFreq = (double)litmp.QuadPart// 获得计数器的时钟频率

QueryPerformanceCounter(&litmp)

QPart1 = litmp.QuadPart// 获得初始值

在待测函数加入:

QueryPerformanceCounter(&litmp)

QPart2 = litmp.QuadPart//获得中止值

dfMinus = (double)(QPart2-QPart1)

dfTim = (dfMinus*1000) / dfFreq// 获得对应的时间值,单位为为毫秒

dfTim就是待测函数执行所需的时间了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11782729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存