1. 精确到秒,计时单位为秒
#include<time.h>
time_t start_time,end_time; /* 长整形数据,time_t 为time.h 中的宏定义 ,原型为 #define long time_t */
start_time=time(NULL); /*记录循环开始的时间*/
/************************
* 循环或函数的调用过程
************************/
end_time=time(NULL); /*记录循环结束的时间*/
printf("循环结束/n");
printf("循环的执行时间为%f/n",difftime(end_time,start_time));
/* difftime 为时间差函数,可返回秒数 */
2.精确到毫秒,计时单位为 毫妙
double cost_time;
clock_t start,end;
start=clock();
end=clock();
cost_time=(double)(end-start)/CLOCKS_PER_SEC);
printf("所用时间为%f",cost_time);
eg2:
#include <time.h>
void main()
{ clock_t start=clock();
for(int k=0; k<100; k++)
{ vector<int> v;
for(int i=0; i<10000; i++) v.push_back(i);
for(i=0; i<10000; i++) v.pop_back() ;
}
clock_t end=clock();
cout<<end-start<<"毫秒"<<endl;
}
clock_t clock(); // 返回当前的机器时间(毫秒单位)
// clock_t其实就是long类型
3.精确到微秒,计时单位为 微秒
LARGE_INTEGER tick;
LARGE_INTEGER timestamp;
unsigned long time;
QueryPerformanceFrequency(&tick);//返回值:非零,硬件支持高精度计数器;零,硬件不支持,读取失败。
QueryPerformanceCounter(×tamp);//用于得到高精度计时器的值
unsigned int us=(timestamp.QuadPart % tick.QuadPart)*1E6/tick.QuadPart;
time = timestamp.QuadPart/tick.QuadPart;
int hours = time/3600;
time=time- (hours * 3600);
int minutes = time/60;
int seconds = time- (minutes * 60);
printf("系统已经启动了 %d小时%d分%d秒 %u微秒/n系统钟频%u, %uMHz/n", hours,minutes,seconds,us,
tick.LowPart,tick.LowPart/1000000);