BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency)可以返回硬件支持的高精度计数器的频率。先调用QueryPerformanceFrequency()函数获得机器内部计时器的时钟频率。接着在需要严格计时的事件发生前和发生之后分别调用QueryPerformanceCounter(),利用两次获得的计数之差和时钟频率,就可以计算出事件经历的精确时间。
#include "stdafx.h"#include <windows.h>
#include <time.h>
#include "process.h"
#define random(x) (rand()%x)
int _tmain(int argc, _TCHAR* argv[])
{
LARGE_INTEGER fre = { 0 } //储存本机CPU时钟频率
LARGE_INTEGER startCount = { 0 }
LARGE_INTEGER endCount = { 0 }
QueryPerformanceFrequency(&fre)//获取本机cpu频率
//开始计时
QueryPerformanceCounter(&startCount)
//运算
for (int i = 0 i < 10000000 i++)
{
float fTem1 = random(100)*random(1000)*random(10000)*random(100000)
}
//结束计时
QueryPerformanceCounter(&endCount)
//计算时间差
double dTimeTake = ((double)endCount.QuadPart - (double)startCount.QuadPart) / (double)fre.QuadPart
printf("用时%f\n", dTimeTake)
system("pause")
return 0
}
1、在程序最开始的地方获取一下系统当前时间并保存;
2、在程序结束的地方获取一下系统当前时间并保存;
3、两者相减即为程序运行时间,将其打印出来便可。
参考代码如下:
#include <stdio.h>#include <time.h>
void main()
{
int i
clock_t t1 , t2
t1 = clock()
for (i=0i<1000000000i++)
t2 = clock()
printf("%d \n", t2-t1)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)