• C_使用clock()函数获取程序执行时间


    clock():捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick ,即“时钟打点”。

    常数CLK_TCK:机器时钟每秒所走的时钟打点数。

     1 #include <stdio.h>
     2 #include <time.h>
     3 
     4 colck_t start, stop;
     5 /* clock_t 是clock() 函数返回的变量类型*/
     6 
     7 double duration;
     8 /* 记录被测函数运行时间,以秒为单位*/
     9 
    10 int main()
    11 {
    12     /*不在测试范围内的准备工作写在clock()调用之前*/
    13     start = clock();        /*    开始计时    */
    14     MyFunction();            /*    把被测函数加在这里    */
    15     stop = clock();            /*     停止计时    */
    16     duration = ((double)(stop - start))/CLK_TCK;
    17 
    18     /*    其他不在测试范围的处理写在后面,eg:输出duration的值*/
    19 }

    实验_eg:执行下面打印一次“Hello World!”的时间

         注意:因为程序执行的太快,所以显示为0;

     1 #include <stdio.h>
     2 #include <time.h>
     3 void hello();
     4 int main(){
     5     clock_t start, stop;
     6     double duration;
     7     start = clock();
     8     hello();
     9     stop = clock();
    10     duration = ((double)(stop - start))/CLK_TCK;
    11     printf("该程序运行的时间是:%f
    ",duration);
    12     return 0;
    13 }
    14 void hello(){
    15     printf("Hello World!
    ");
    16 }

    解决方案:让被测函数重复运行充分多次,使得测出的总的时钟打点间隔充分长,最后计算被测函数平均运行的时间。

     1 #include <stdio.h>
     2 #include <time.h>
     3 
     4 #define MAXK 1e5 /*    被测函数最大重复调用次数    */
     5 
     6 void hello();
     7 int main(){
     8     int i;
     9     clock_t start, stop;
    10     double duration;
    11     start = clock();
    12     for(i=0; i<MAXK; i++){
    13         hello();
    14     }
    15     stop =  clock();
    16     duration = ((double)(stop - start))/CLK_TCK/MAXK;
    17 
    18     printf("duration = %f
    ",duration);//0.00003s左右
    19     return 0;
    20 }
    21 
    22 void hello(){
    23     printf("Hello world!");
    24 }

  • 相关阅读:
    integer和double的比较.
    查看mysql版本的四种方法
    codefoces 1397D Stoned Game
    最小生成树集合合并
    codefoces 1400B RPG Protagonist
    codefoces 1400B RPG Protagonist
    牛客挑战赛42 小睿睿的伤害
    病毒扩散 排列组合
    Dus on tree 月出皎兮,佼人僚兮。
    msc的宠物 二分+树形DP
  • 原文地址:https://www.cnblogs.com/LinSL/p/7475001.html
Copyright © 2020-2023  润新知