您的位置:首页 > 编程语言 > C语言/C++

c语言中测试代码的运行时间

2013-04-03 00:00 344 查看
[cpp]
view plain
copy

#include <stdio.h>

#include <time.h>

#include <windows.h>

void main()

{

clock_t start , finish;

start = clock();

Sleep(23);

finish = clock();

double elapsed_time;

elapsed_time = (finish - start) / (double)CLOCKS_PER_SEC;

printf("%lf\n",elapsed_time);

}

1、使用time.h中clock函数

[cpp]
view plain
copy

#include "stdio.h"

#include "time.h"

int main(int argc, char ** argv)

{

time_t time1, time2;

time1 = time((time_t *)NULL);

//your code

time2 = time((time_t *)NULL);

printf("%f\n", difftime(time2, time2));

return 0;

}

2、使用time和difftime函数

以上这两种方式,处理测试代码时,结果都是0.000000,不是我想要的结果

用LARGE_INTEGER查看系统运行时间,运行结果可以达到毫秒级

3、使用LARGE_INTEGER

[cpp]
view plain
copy

#include <stdio.h>

#include <stdlib.h>

#include <windows.h> // 注意,该功能需要调用windows.h

void main()

{

int i;

long sum=0;

double d;

LARGE_INTEGER Freg;

LARGE_INTEGER Count1, Count2;

QueryPerformanceFrequency(&Freg); // 调用API函数,这个API函数可是优先级0的函数啊. 得到系统计数器频率

QueryPerformanceCounter(&Count1); // 获取时间一

for(i=1;i<=500;i++) // 执行程序。

sum=sum+i;

QueryPerformanceCounter(&Count2); // 获取时间二

d = (double)(Count2.QuadPart - Count1.QuadPart) / (double)Freg.QuadPart * 1000.0;

// 得到的d为时间差,单位为毫秒。

printf("The time is %f, and the sum is %d\n",d,sum);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: