1. 精確到秒,計(jì)時(shí)單位為秒
#include
time_t start_time,end_time;
/*長(zhǎng)整形數(shù)據(jù),time_t為time.h中的宏定義,原型為#define long time_t*/
start_time=time(NULL); /*記錄循環(huán)開始的時(shí)間*/
/************************
* 循環(huán)或函數(shù)的調(diào)用過程
************************/
end_time=time(NULL); /*記錄循環(huán)結(jié)束的時(shí)間*/
printf(“循環(huán)結(jié)束/n”);
printf(“循環(huán)的執(zhí)行時(shí)間為%f/n”,difftime(end_time,start_time));
/* difftime 為時(shí)間差函數(shù),可返回秒數(shù) */
2.精確到毫秒,計(jì)時(shí)單位為 毫妙
double cost_time;
clock_t start,end;
start=clock();
end=clock();
cost_time=(double)(end-start)/CLOCKS_PER_SEC);
printf(“所用時(shí)間為%f”,cost_time);
/**************************************************************/
//C++的例子
/**************************************************************/
#include
void main()
{
clock_t start=clock();
for(int k=0; k<100; k++)
{
vector 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(); // 返回當(dāng)前的機(jī)器時(shí)間(毫秒單位)
// clock_t其實(shí)就是long類型
3.精確到微秒,計(jì)時(shí)單位為 微秒
LARGE_INTEGER tick;
LARGE_INTEGER timestamp;
unsigned long time;
QueryPerformanceFrequency(&tick);
//返回值:非零,硬件支持高精度計(jì)數(shù)器;零,硬件不支持,讀取失敗。
QueryPerformanceCounter(×tamp);
//用于得到高精度計(jì)時(shí)器的值
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(“系統(tǒng)已經(jīng)啟動(dòng)了 %d小時(shí)%d分%d秒 %u微秒/n
系統(tǒng)鐘頻%u,%uMHz/n”,
hours, minutes, seconds, us, tick.LowPart,
tick.LowPart/1000000);