
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
}
#include <stdio.h>#include <time.h>
#define N 10000 /*这个数字可以自己改,如果时间太长结果不出来你就改小点*/
void f()
{
int i, j, k
for ( i = 0i <N++i )
for ( j = 0j <N++j )
for ( k = 0k <N++k )
}
int main()
{
clock_t begin, duration
begin = clock()
f()
duration = clock() - begin
printf( "函数f()的运行时间大约为:%dms\n", duration*1000/CLOCKS_PER_SEC )
}
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条)