在linux下,怎么统计一个代码段的执行时间

在linux下,如何统计一个代码段的执行时间
大家好,在这里请教各位朋友一个问题:

我原来有一个测试程序,用来统计某段代码的执行时间。原来的运行环境都是在Windows下,所以它一直运行的很好,但现在需要同时统计代码在linux下的运行时间。
请教各位朋友,在linux下,或者说标准的c/c++库中,有什么类似于GetTickCount()的函数?
ps:最好是在windows和linux下都通用的

谢谢!

代码如下:

//记录代码段执行时间
DWORD   k   =   0;
DWORD   j   =   0;

//记录开始时间
k   =   GetTickCount();

//被统计执行时间的代码
...
...

//记录结束时间
j   =   GetTickCount();

//显示被统计执行时间的代码段所耗费的时间,单位为秒
double   dfTim   =   (   (double)(j   -   k)   )   /   1000;
printf(   "Tolal   Time:%.9fs ",   dfTim   );

------解决方案--------------------
Linux下对时间进行运算,如果是到秒级的,相信大家都用过time之类的函数实现了,但要更精确些呢?到毫秒、微秒级呢?

  看看下面这段源代码就明白了:

#include
#include
#include

void function()/*用来耗用一定的时间而已,无实际用处的函数*/
{
unsigned int i,j;
double y;
for(i=0;i <10000;i++)
for(j=0;j <10000;j++)
y=sin((double)i);
}

int main(int argc, char ** argv)
{
struct timeval tpstart,tpend;
float timeuse;

gettimeofday(&tpstart,NULL);
function();
gettimeofday(&tpend,NULL);
timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+tpend.tv_usec-tpstart.tv_usec;
timeuse/=1000000;
printf( "Used Time:%f\n ",timeuse);
exit(0);
}

  主要是用到了gettimeofday函数,函数里用到了这个结构:

struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* microseconds */
};
------解决方案--------------------
GetTickCount() 级,用标准库的 time 就可以了吧。
------解决方案--------------------
我也是采用jixingzhong(瞌睡虫·星辰)的方法,统计数据库查询时间。
不过没办法在windows也兼容。
------解决方案--------------------
linux 下 不是 有 time 程序来测试 软件的运行时间的吗
------解决方案--------------------
gettimeofday对于多cpu是准确的,否则难道cpu数目上去了,系统时间就不准了么?反而gettickcount是否准确就要调查一下了.
------解决方案--------------------
使用毫秒级来计算,可以考虑使用clock()。

#include "time.h "
int main( void )
{
clock_t start, finish;
double usetime;
start = clock();
//这里写你测试程序
finish = clock();
usetime= (double)(finish - start) / CLOCKS_PER_SEC;
printf( "程序用时%f 秒\n ", usetime);
}

http://xingxinwang.blog.163.com/blog/static/19929240200707101249210

------解决方案--------------------
用time就可以了