作者在 2007-10-21 09:45:00 发布以下内容
测试一段代码运行的时间原理很简单,就是在代码执行前记录一下时间,最后,在代码执行完后,再次记录一下时间.
然后,将后面的时间减去前面的时间就是代码所执行的时间.
获得时间的方法有多种,下面就介绍一种不太精确的计算时间的方法.
我们用到的函数是clock(),它的声明在TIME.H中.它的作用是获得程序从开始运行到当前时间点所经历的时间周期.
还有一个宏定需要介绍,它是#define CLK_TCK 18.2 .它的作用是一秒钟有18.2个时间周期.
知道了这些我们就写一个例子:
/*程序的作用:测试一个空语句的循环,并循环60000000次所需要的时间.*/
#include<stdio.h>
#include<conio.h>
#include<time.h>
int main(void)
{
time_t start,end;
long i=0;
start=clock(); /*获得从程序到现在所花的时间周期*/
for(i=0;i<60000000;i++) ; /*循环60000000次*/
end=clock(); /*获得从程序到现在所花的时间周期*/
clrscr(); /*清屏*/
/*显示循环所花的时间,(end-start)为循环所用的时间周期,
(end-start)/CLK_TCK将时间周期转化成单位为秒的时间单位.*/
printf("%.20lf",(double)(end-start)/CLK_TCK);
getch(); /*暂停*/
}
然后,将后面的时间减去前面的时间就是代码所执行的时间.
获得时间的方法有多种,下面就介绍一种不太精确的计算时间的方法.
我们用到的函数是clock(),它的声明在TIME.H中.它的作用是获得程序从开始运行到当前时间点所经历的时间周期.
还有一个宏定需要介绍,它是#define CLK_TCK 18.2 .它的作用是一秒钟有18.2个时间周期.
知道了这些我们就写一个例子:
/*程序的作用:测试一个空语句的循环,并循环60000000次所需要的时间.*/
#include<stdio.h>
#include<conio.h>
#include<time.h>
int main(void)
{
time_t start,end;
long i=0;
start=clock(); /*获得从程序到现在所花的时间周期*/
for(i=0;i<60000000;i++) ; /*循环60000000次*/
end=clock(); /*获得从程序到现在所花的时间周期*/
clrscr(); /*清屏*/
/*显示循环所花的时间,(end-start)为循环所用的时间周期,
(end-start)/CLK_TCK将时间周期转化成单位为秒的时间单位.*/
printf("%.20lf",(double)(end-start)/CLK_TCK);
getch(); /*暂停*/
}