c语言linux打印运行时间(耗时) gettimeofday()timeval<sys/time.h>

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言linux打印运行时间(耗时) gettimeofday()timeval<sys/time.h>相关的知识,希望对你有一定的参考价值。

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

double __get_us(struct timeval t)  
	return (t.tv_sec * 1000000 + t.tv_usec); 


int main()
	struct timeval start_time, stop_time;
	gettimeofday(&start_time, NULL);

	//待运行代码

	gettimeofday(&stop_time, NULL);
	printf("Time use %f ms\\n", (__get_us(stop_time) - __get_us(start_time)) / 1000);


示例(在ubuntu16.04上):

test.c

#include <stdio.h>	//使用printf()需要包含
#include <sys/time.h>
#include <unistd.h>	//使用sleep()函数需要包含

double __get_us(struct timeval t) 
	return (t.tv_sec * 1000000 + t.tv_usec);


int main() 
	struct timeval start_time, stop_time;
	gettimeofday(&start_time, NULL);

	//待运行代码
	sleep(1);

	gettimeofday(&stop_time, NULL);
	printf("Time use %f ms\\n", (__get_us(stop_time) - __get_us(start_time)) / 1000);

编译运行结果:

[root@ubuntu /arnold_test/20211227_TEST]12# gcc test.c 
[root@ubuntu /arnold_test/20211227_TEST]13# ./a.out 
Time use 1000.994000 ms

参考文章:C语言linux gettimeofday()函数和time()函数的区别(后者只能得到秒级系统时间,前者能得到毫秒甚至微秒级系统时间)

以上是关于c语言linux打印运行时间(耗时) gettimeofday()timeval<sys/time.h>的主要内容,如果未能解决你的问题,请参考以下文章

clock_gettime() 没有给出正确的输出[重复]

linux怎么运行c程序

Linux下用C获取当前时间

在Linux上确定clock_gettime分辨率的正确方法

怎样在linux下编写C程序并编译执行

使用 ICC 在 Linux 中未定义的对 clock_gettime() 的引用