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);
/**************************************************************/
//C++的例子
/**************************************************************/
#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);