您的位置:首页 > 编程语言 > C语言/C++

C语言:获取程序运行消耗的时间——gettimeofday

2017-02-27 16:01 393 查看
在测试程序时,往往需要了解程序执行所需的时间,在C语言中可以使用函数gettimeofday来得到时间。

来不及解释了,直接上例子。

对于普通的C程序:

使用 gettimeofday() 函数

#include<stdio.h>
#include<sys/time.h> //注意引用这个头文件
#include<unistd.h>

int delay(int time)
{
//这里用来表示你自己要运行的程序
}

int main()
{
//定义两个结构体,来记录开始和结束时间
struct  timeval start;
struct  timeval end;
//记录两个时间差
unsigned  long diff;

//第一次获取时间,即表示开始记时
gettimeofday(&start,NULL);

//运行自己的程序
delay(10);

//第二次获取时间,即表示结束记时
gettimeofday(&end,NULL);

//计算时间差,并打印
diff = 1000000 * (end.tv_sec-start.tv_sec)+ end.tv_usec-start.tv_usec;
printf(“thedifference is %ld\n”,diff);

return 0;
}


哈哈,例子结束,是不是很简单。当然这是抄的。。。。。。。

对于内核模块的C程序

虽然同是C程序,但是写内核模块就有很大的不同哦。

使用 do_gettimeofday() 函数,同时,头文件也变了哦

同样的,直接上例子。

#include<stdio.h>

//注意引用这个头文件
#include<linux/time.h>

#include<unistd.h>

int delay(int time)
{
//这里用来表示你自己要运行的程序
}

int main()
{
//定义两个结构体,来记录开始和结束时间
struct  timeval start;
struct  timeval end;
//记录两个时间差
unsigned  long diff;

//第一次获取时间,即表示开始记时
do_gettimeofday(&start,NULL);

//运行自己的程序
delay(10);

//第二次获取时间,即表示结束记时
do_gettimeofday(&end,NULL);

//计算时间差,并打印
diff = 1000000 * (end.tv_sec-start.tv_sec)+ end.tv_usec-start.tv_usec;
printf(“thedifference is %ld\n”,diff);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: