欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux下统计代码运行时间消耗-gettimeofday

程序员文章站 2024-01-23 17:31:22
...

最近在工控机的centos上做业务功能开发,有些业务流程对时间要求比较苛刻,但系统又不是实时系统,代码运行时间没法保证,所以每次添加代码和进程的时候都只能手工测试一下时间消耗,也是醉醉的。
linux上有获取当前系统时间的接口gettimeofday,获取回来的时间可以精确到微妙(实际精度到不了1微妙,测试大概也就是几十微妙)。简单测试例子如下,用usleep代表想测试的实际代码。

#include <stdio.h>
#include <iostream>
#include <time.h>
#include <unistd.h>
#include <sys/time.h>

//统计时间消耗
int main(int argc, char** argv){
	struct timeval tv;
	long startTimeUsec = 0;
	long endTimeUsec = 0;

	//获取开始时间
	gettimeofday(&tv,NULL);
	startTimeUsec = tv.tv_sec*1000000 + tv.tv_usec;
	printf("开始:  %ld\n",startTimeUsec);

	//用usleep模拟实际的程序代码
	usleep(8000);

	//获取结束时间
	gettimeofday(&tv,NULL);
	endTimeUsec = tv.tv_sec*1000000 + tv.tv_usec;
	printf("结束:  %ld\n",endTimeUsec);

	//计算时间消耗
	printf("时间消耗:  %ld\n",(endTimeUsec - startTimeUsec));
	

	return 0;
}

编译运行如下:

[email protected]:~/lxd$ g++ -o timecount timecount.cpp
[email protected]:~/lxd$ 
[email protected]:~/lxd$ ./timecount 
开始:  1603787697631180
结束:  1603787697639334
时间消耗:  8154
[email protected]:~/lxd$ 

相关标签: Linux 嵌入式