前言

获得函数的运行时间,在测试和验证函数接口中经常用到。近日,check测试单元对项目的函数接口测试时莫名其妙的报错,即:(after this point) Test timeout expired,寻找了很多方法都没解决问题。最后,决定对函数运行时间的判断,果然发现其中新增函数的运行时间极长,分析其原因是需要等待某些资源,最终解决问题。现有的网上关于系统时间获取和函数运行时间获取的方法,这些方法的介绍比较散乱,实际可用性较低;因此,本文将介绍三种简单的程序运行时间的获取方法,直接使用,拒绝套路。

第一种:直接使用linux下的time命令

linux下运行可执行程序a ,直接在前面添加time,即:time ./a实例如下:

time ./create -x509 //create-x509 为可执行程序

time ./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;
}

参考

查看C语言运行函数的简单模板
linux下统计程序/函数运行时间

Logo

更多推荐