Windows下利用C语言获得函数的执行时间

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(&timestamp);//用于得到高精度计时器的值
 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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值