在C/C++中有可以直接测试程序运行时间的函数,在<time.h>/<ctime>头文件中,非常方便和实用。
clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:
clock_t clock(void) ;
简单而言,就是该程序从启动到函数调用占用CPU的时间。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock);若挂钟时间不可取,则返回-1。其中clock_t是用来保存时间的数据类型,clock_t实质是头文件中long数据类型类型定义的一个代称。使用计时很简单,只要在程序想计时的地方放入一个clock()函数,另外在结束地方放置一个clock()函数,两个返回值的差即是程序消耗时间。但是该函数计时是以毫秒(ms)为单位的,也就是没过千分之一秒加一,所以需要除以一个常量1000才是以秒计时的,一般使用头文件中声明好的常量CLOCKS_PRE_SEC(即1000)。
测试程序如下:
-
#include<iostream>
-
#include<cstdlib>
-
#include<ctime>
-
using
namespace
std;
-
clock_t start,end;
-
-
int main(){
-
start=clock();
//程序开始计时
-
int ans=
0;
-
for(
int i=
1;i<=
1e8;i++)
-
ans++;
-
end=clock();
//程序结束用时
-
double endtime=(
double)(end-start)/CLOCKS_PER_SEC;
-
cout<<
"Total time:"<<endtime<<
endl;
//s为单位
-
cout<<
"Total time:"<<endtime*
1000<<
"ms"<<
endl;
//ms为单位
-
system(
"pause");
-
return
0;
-
}
运行截图: