统计某次操作(函数)耗时时长

C中统计耗时

在C语言中可以使用函数gettimeofday()函数来得到时间。它的精度可以达到微妙。 首先看一下man手册中的描述:

$ man gettimeofday

DESCRIPTION
       The functions gettimeofday() and settimeofday() can get and set the time as well as a timezone.
       The tv argument is a struct timeval (as specified in <sys/time.h>):

           struct timeval {
               time_t      tv_sec;     /* seconds */
               suseconds_t tv_usec;    /* microseconds */
           };

  

 意思就是该函数返回的timeval类型的时间值,tv_sec是秒,tv_usec代表的是微秒。

举例

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


int main(int argc,  char * argv[])
{
    struct timeval tpstart,tpend;

 
    gettimeofday(&tpstart,NULL);
    seek("/sdcard/Music/mm.mp3", 0, 3600);
    gettimeofday(&tpend,NULL);

    printf("Used Time:%f\n",tpend.tv_usec - tpstart.tv_usec);

    return 0;
}

本例子是调试一个我自定义的seek函数,你也可以替换成自己想要调试的函数,定义了两个timeval的变量tpstart,tpend,分别记录函数起始和函数结束时的时间,两者相减,就可以计算出该函数执行的时间消耗。我这里打印的是tv_usec(微秒),你也可以根据自己需求打印tv_sec。

说明:

在使用gettimeofday()函数时,第二个参数一般都为空,因为我们一般都只是为了获得当前时间,而不用获得timezone的数值

猜你喜欢

转载自blog.csdn.net/mdx20072419/article/details/125081834
今日推荐