精华内容
下载资源
问答
  • c语言 计算函数执行时间

    千次阅读 2012-04-20 09:31:26
    linux c语言 计算函数执行时间 虽然在linux下我们可以用time命令来计算一个执行程序的时间,可是time命令会把输入输出时间一并计算在内,对于计算函数执行时间并不精确,所以写出以下代码计算函数的执行时间: ...

    linux c语言 计算函数执行时间

    虽然在linux下我们可以用time命令来计算一个执行程序的时间,可是time命令会把输入输出时间一并计算在内,对于计算函数执行时间并不精确,所以写出以下代码计算函数的执行时间:

    #include<stdio.h>
    #include<time.h>
    #include<stdlib.h>

    int main()
    {
            struct timeval tpstart,tpend;
            float timeuse;
            int i;
            gettimeofday(&tpstart,NULL);

            scanf("%d", &i);
                  /*这里计算的是scanf函数的执行时间,就是从函数执行到命令行输入回车的时间。*/

            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);
            return(0);
    }

    通用方法1:
    #include   <time.h>  
       
      time_t   start,   end;  
      time(&start);  
      ...  
      time(&end);  
       
      cout<<end-start;

    方法2:
    有许多专门的测试工具,测试的准确性很高,本文说的是一些简单的测试方法,这些方法多数是记录CPU的运行时间,没有考虑操作系统的分时复用,不过不太严格的情况都可一用。

    1.  #include <time.h>
    long start=clock(),end(0);
    //ToDo:process code
    end=clock();
    long result=(end-start)/1000

    2.  windows 平台
    #include <windows.h>
    double start=getticktime(),end(0);
    //ToDo:process code
    end=getticktime();
    double result=end-start;

    3.windows 平台
    #include <windows.h>
        LARGE_INTEGER  frequency,start,end;  
        QueryPerformanceFrequency(&frequency);  
        QueryPerformanceCounter(&start);  
     //ToDO:process code
        QueryPerformanceCounter(&end);  
        double   d   =   (double)(end.QuadPart   -   start.QuadPart)   /   (double)frequency.QuadPart   *   1000.0;

    4.根据线程而来的
    CThreadTime   ElapsedTime;  
      ElapsedTime.BeginGetElapsedTime();  
       
      //TODO:   Your   performance   code  
       
      int   nThreadTine   =   ElapsedTime.EndGetElapsedTime();  
       
       
      该类的实现如下:  
      //   This   class   is   for   getting   the   elapsed   thread   time   of   the   CPU,   the   unit   is   ms  
      //   the   usage   is:    
      //    
      //   CThreadTime   ElapsedTime;  
      //   ElapsedTime.BeginGetElapsedTime();  
      //   TODO:   Your   performance   code  
      //   int   nThreadTine   =   ElapsedTime.EndGetElapsedTime();  
      //  
       
       
      #include   <Windows.h>  
       
      class   CThreadTime  
      {  
      public:          
              void         BeginGetElapsedTime();  
              __int64   EndGetElapsedTime();  
       
      private:  
              __int64   FileTimeToQuadWord(PFILETIME   pft);  
       
      private:  
              FILETIME   ftKernelTimeStart;  
              FILETIME   ftKernelTimeEnd;  
              FILETIME   ftUserTimeStart;  
              FILETIME   ftUserTimeEnd;  
              FILETIME   ftDummy;  
      };  
       
      //   Get   the   time   elapsed   since   the   thread   start  
      inline   void   CThreadTime::BeginGetElapsedTime()  
      {  
              GetThreadTimes(GetCurrentThread(),   &ftDummy,   &ftDummy,   &ftKernelTimeStart,   &ftUserTimeStart);  
      }  
       
      //   Calculate   the   time   elapsed    
      inline   __int64   CThreadTime::EndGetElapsedTime()  
      {  
              GetThreadTimes(GetCurrentThread(),   &ftDummy,   &ftDummy,   &ftKernelTimeEnd,   &ftUserTimeEnd);  
       
              __int64   qwKernelTimeElapsed   =   FileTimeToQuadWord(&ftKernelTimeEnd)   -   FileTimeToQuadWord(&ftKernelTimeStart);  
              __int64   qwUserTimeElapsed   =   FileTimeToQuadWord(&ftUserTimeEnd)   -   FileTimeToQuadWord(&ftUserTimeStart);  
       
              //   Get   total   time   duration   by   adding   the   kernel   and   user   times.  
              //   the   default   is   100ns,   so   we   convert   it   to   ms  
              return   (qwKernelTimeElapsed   +   qwUserTimeElapsed)   /   10000;  
      }  
       
      inline   __int64   CThreadTime::FileTimeToQuadWord(PFILETIME   pft)    
      {  
              return   (Int64ShllMod32(pft->dwHighDateTime,   32)   |   pft->dwLowDateTime);  
      }

    在linux下计算程序执行时间:
    $ time ./program

    展开全文
  • #include “stdio.h” #include “time.h” int main( void ) { clock_t start, end; double use_seconds; start = clock(); unsigned int i = 0xffffffff; while( i-- ); end = clock();... use_...
    #include “stdio.h”
    #include “time.h”
     
    int main( void )
    {
       clock_t start, end;
       double  use_seconds;
       start = clock();
       unsigned int i = 0xffffffff;
       while( i-- );
       end = clock();
       use_seconds = (double)(end - start) / CLOCKS_PER_SEC;
       printf( "%f seconds\n", use_seconds );
    }
    

     

    展开全文
  • #include #include #include int main() { struct timeval tpstart,tpend; float timeuse; int i; gettimeofday(&tpstart,NULL); scanf("%d", &i); /*这里计算
    #include
    #include
    #include
    
    int main()
    {
            struct timeval tpstart,tpend;
            float timeuse;
            int i;
            gettimeofday(&tpstart,NULL);
    
            scanf("%d", &i);
                  /*这里计算的是scanf函数的执行时间,就是从函数执行到命令行输入回车的时间。*/
    
            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);
            return(0);
    }

    展开全文
  • 如下的内容内容是关于C语言计算函数执行时间的内容。 struct timeval start, end, delta; assert(gettimeofday(&start, NULL) != -1); for (int i = 0; i < LAPS; i++) test_function(); assert...

    如下的内容内容是关于C语言计算函数执行的时间的内容。

    struct timeval start, end, delta; assert(gettimeofday(&start, NULL) != -1);

    for (int i = 0; i < LAPS; i++) test_function();

    assert(gettimeofday(&end, NULL) != -1); timersub(&end, &start, &delta);

    展开全文
  • linux下的C语言计算程序执行时间

    千次阅读 2013-10-18 15:48:30
    本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和...
  • c语言 clock() 计算函数执行时间

    万次阅读 2018-04-24 18:11:06
    clock() 计算函数执行时间 原理 clock(): 捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。 常数CLK_TCK:机器时钟每秒所走的时钟打点数。 #include&lt;...
  • 计算程序中某一个函数或算法的执行时间 #include <stdio.h> #include <time.h> #include <stdlib.h> int main() { long i = 10000000L; clock_t start, finish; double duration; printf( ...
  • Windows下利用c语言测试函数运行时间

    千次阅读 2014-02-17 21:13:57
    很多时候你需要测量某个函数执行时间,从而进行优化。在网上也查了一些关于这方面的文章,要不就是给出的函数只能在linux下运行,或者就是系统或硬件不支持该函数,有些给出的计算精度有问题。通过测试,给出了...
  • c语言计算程序运行时间的方法

    千次阅读 2017-05-03 20:47:00
    1. 有时候我们要计算程序执行时间.比如我们要对算法进行时间分析,这个时候可以使用下面这个函数. 精确到us。 #include <sys/time.h> int gettimeofday(struct timeval *tv,struct timezone *tz); strut ...
  • 在完成编译原理的实验时,想比较用链表和哈希表共同执行一段程序的时间是否有差异,最开始使用函数如下: main() { clock_t start = 0; clock_t end = 0; double time; int i; start = clock(); yylex...
  • 运行环境:Windows,...头函数:#include开始时间: /* 长整形数据,time_t为time.h 中的宏定义,原型为 #define long time_t */ time_t start_time,end_time; /*记录程序开始的时间*/start_time=time(NULL); 结束时
  • C语言时间计算

    2019-12-01 18:50:38
    时间计算 1. clock函数 精确度为秒 clock函数返回从程序开始执行起处理器始终滴答的次数,为了把这个值转化为秒,应该除以CLOCKS_PER_SEC #include<time.h> #include<stdio.h> #include<unistd.h&...
  • 在函数之前和之后取得系统的时间,然后相减就是函数执行时间,不过在取得系统时间的时候,最小单位是微秒具体代码如下:#include#include#include#includeusing namespace std;int main(){clock_t cBegin = clock();...
  • 一个直接的方法是测量的一定量的算法级数据的执行时间的感知。 随着C语言提供qsort对于示例。随着100一万次的数据,以测试其计算量。感知O(nlg(n))时间成本: C码如下面: #include <stdio.h> #include <...
  • 很多时候你需要测量某个函数执行时间,从而进行优化。在网上也查了一些关于这方面的文章,要不就是给出的函数只能在linux下运行,或者就是系统或硬件不支持该函数,有些给出的计算精度有问题。通过测试,给出了...
  • 实现思路详见:https://blog.csdn.net/qq_33901011/article/details/100155334 该工程用C语言实现了crontab表达式执行时间,与在线crontab执行时间计算在线工具结果一致,用在嵌入式行业里的设备定时唤醒,定时操作...
  • 在学习中遇到一个问题,就是要计算出一个函数执行时间,但是我不可能每个函数都去执行一次clock,所以这里要想统一处理这个问题就需要把函数作为参数传入到方法内。 首先是是无参函数作为的传递: void ...
  • 我们平常所说的执行效率就是使用相同的算法在相同输入条件下完成相同计算所产生的系统开销,目前来说一般会更多关注执行时间方面的开销。所有语言编写的代码最终要运行,都要转化成机器码。在更短的时间内完成相同的...
  • C语言再学习 -- 时间函数

    千次阅读 2017-01-14 16:46:39
    在软件设计中经常会用到关于时间的处理,用来计算语句、函数执行时间,这时就需要精确到毫秒甚至是微妙的时间。我们首先来介绍一下,时间单位: 时间单位还有:毫秒(ms)、微秒 (μs)、纳秒(ns)、皮秒(ps)、飞秒...
  • 在实际开发中,对日期和时间的操作场景非常多,例如程序启动和退出的时间,程序执行任务的时间,数据生成的时间,数据处理的各环节的时间等,无处不在。 在学习时间之前,请把Linux操作系统的时区设置为中国上海时间...
  • 在函数之前和之后取得系统的时间,然后相减就是函数执行时间,不过在取得系统时间的时候,最小单位是微秒 具体代码如下: #include<stdio.h> #include<iostream> #include<stdlib.h> #...
  • 我同C语言尝试了一下,在求X的i次方时想到一个问题,假如我调用pow(x,i)函数,那么和我自己重新写一个幂函数求值函数的运行时间是否有差别,如果有,那么这个算法最终的运行时间就不准确,因为借助了库函数执行效率...
  • c语言的单片机delay延时函数详解

    千次阅读 2021-04-07 11:32:15
    简单来说,延时函数的目的就在于等,实际上就是要等一段时间再来执行接下来的代码。而这种简单的等,又可以采用多种方法来实现。例如: 名称 描述 循环 采用for或者while循环,让计算机跑无用的代码,从而...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 216
精华内容 86
关键字:

c语言计算函数执行时间

c语言 订阅