站长资讯网
最全最丰富的资讯网站

C语言获得函数的执行时间

  1. 精确到秒,计时单位为秒

  #include

  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

  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(); // 返回当前的机器时间(毫秒单位)

  // 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);

 

赞(0)
分享到: 更多 (0)

网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号