前言
获得函数的运行时间,在测试和验证函数接口中经常用到。近日,check测试单元对项目的函数接口测试时莫名其妙的报错,即:(after this point) Test timeout expired,寻找了很多方法都没解决问题。最后,决定对函数运行时间的判断,果然发现其中新增函数的运行时间极长,分析其原因是需要等待某些资源,最终解决问题。现有的网上关于系统时间获取和函数运行时间获取的方法,这些方法的介绍比较散乱,实际可用性较低;因此,本文将介绍三种简单的程序运行时间的获取方法,直接使用,拒绝套路。
第一种:直接使用linux下的time命令
linux下运行可执行程序a ,直接在前面添加time,即:time ./a实例如下:
time ./create -x509 //create-x509 为可执行程序
第二种:秒级
#include <stdio.h>
#include<time.h>
int main(int argc, char** argv)
{
time_t t_start,t_end;
t_start = time(NULL);
{
//待测运行时间的函数
}
t_end = time(NULL);
printf("defftime:%2.6f \n",difftime(t_end,t_start)); //秒级
return 0;
}
第三种:微秒级
#include <stdio.h>
#include<time.h>
int main(int argc, char** argv)
{
clock_t t_start,t_end;
t_start = clock();
{
//待测运行时间的函数
}
t_end = clock();
printf("time: %2.6f\n",(double)(t_end-t_start)/CLOCKS_PER_SEC);//微妙 ,【注】:这里必须要进行double转换
return 0;
}