新浪博客

利用gettimeofday计算程序运行时间--精确到毫秒(/微秒)(timeval结构体)

2014-06-26 17:16阅读:
笔者在写一个测试c++程序运行时间的小函数时,用到了gettimeofday函数和timeval这个结构体,它可以精确到时间的微秒量级,此函数代码在linux下亲测可用,在windows下没试过,应该不行。
在linux的man页中对gettimeofday函数的说明中,gettimeofday用法为:
#includetime.h>
int gettimeofday(struct timeval *tv, struct timezone *tz);
DESCRIPTION
The functions gettimeofday and settimeofday can get and set the time as
well as a timezone. The tv argument is a timeval struct, as specified
in :
struct timeval 结构体定义如下:
struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};

以下是利用gettimeofday计算程序运行时间的例子:


#include

#include <<font color='#ff0000'>sys/time.h>

long getCurrentTime()

{

struct timeval tv;

gettimeofday(&tv,NULL);

return tv.tv_sec * 1000 + tv.tv_usec / 1000;

}

int main()

{

long start = getCurrentTime();

printf('c/c++ program:%ld',getCurrentTime());

//设置延迟

for (int i = 0; i<100000; ++i)

{ ; }

printf('The program has run %ld ms', getCurrentTime()-start);

return 0;

}


运行后就可以看到结果啦 利用gettimeofday计算程序运行时间--精确到毫秒(/微秒)(timeval结构体)~~


我的更多文章

下载客户端阅读体验更佳

APP专享