C语言中计算函数执行时间的三种方式

 更新时间:2023年09月08日 15:37:13   作者:淼叔  
本文主要介绍了C语言中计算函数执行时间的三种方式,主要包括clock(),timeb和time,具有一定的参考价值,感兴趣的可以了解一下

这篇文章主要介绍三种计算执行时间的方式。

方式1: time + difftime

使用time.h标准库中的time和difftime函数可以返回记录的两次time_t结构的时间之间的差值,这种方式只能精确到秒级,代码示例如下:

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

int fibonacci(int n) {
    if(n == 0 || n == 1) return 1;
    return fibonacci(n-1) + fibonacci(n-2);
}

int main() {
    int n = 0;
    while(~scanf("%d",&n)) {
        time_t start_time=0, end_time=0;
        time(&start_time);
        printf("fibonacci(%d)=%d\n",n,fibonacci(n));
        time(&end_time);
        printf("Time Used: %f\n",difftime(end_time,start_time));
    }
    return 0;
}
  • 执行结果如下

45
fibonacci(45)=1836311903
Time Used: 9.000000

方式2: clock + CLOCKS_PER_SEC

另外利用clock函数代替time函数也能起到相同作用,这种方式通过计算两个clock函数之间的时钟单元来实现,代码示例如下:

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

int fibonacci(int n) {
    if(n == 0 || n == 1) return 1;
    return fibonacci(n-1) + fibonacci(n-2);
}

int main() {
    int n = 0;
    while(~scanf("%d",&n)) {
        time_t start_time=0, end_time=0;
        start_time=clock();
        printf("fibonacci(%d)=%d\n",n,fibonacci(n));
        end_time=clock();
        printf("Time Used: %f\n",(double)(end_time-start_time)/CLOCKS_PER_SEC);
    }
    return 0;
}
  • 执行结果如下

45
fibonacci(45)=1836311903
Time Used: 8.715660

方式3: timeb+ftime

另外利用clock函数代替time函数也能起到相同作用,这种方式通过计算两个clock函数之间的时钟单元来实现,代码示例如下:

#include <stdio.h>
#include <sys/timeb.h>
#include <string.h>
int fibonacci(int n) {
    if(n == 0 || n == 1) return 1;
    return fibonacci(n-1) + fibonacci(n-2);
}

int main() {
    int n = 0;
    while(~scanf("%d",&n)) {
        struct timeb start_time, end_time;
        memset(&start_time,0,sizeof(struct timeb));
        memset(&start_time,0,sizeof(struct timeb));
        ftime(&start_time);
        printf("fibonacci(%d)=%d\n",n,fibonacci(n));
        ftime(&end_time);
        printf("Time Used: %d.%d\n",end_time.time-start_time.time,end_time.millitm-start_time.millitm);
    }
    return 0;
}
  • 执行结果如下

45
fibonacci(45)=1836311903
Time Used: 8.621

总结

到此这篇关于C语言中计算函数执行时间的三种方式的文章就介绍到这了,更多相关C语言计算函数执行时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅析C++可变参数模板的展开方式

    浅析C++可变参数模板的展开方式

    可变参数模板(variadic templates)是C++11新增的强大的特性之一,它对模板参数进行了高度泛化,能表示0到任意个数、任意类型的参数,这篇文章主要介绍了C++可变参数模板的展开方式,需要的朋友可以参考下
    2022-04-04
  • CMake语法及CMakeList.txt简单使用小结

    CMake语法及CMakeList.txt简单使用小结

    Cmake主要用于开发跨平台的C++项目,本文主要介绍了CMake语法及CMakeList.txt简单使用小结,具有一定的参考价值,感兴趣的可以了解一下
    2022-05-05
  • C++和C中const的区别详解

    C++和C中const的区别详解

    这篇文章主要为大家介绍了C++和C中const的区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • C语言中%zu的用法解读

    C语言中%zu的用法解读

    size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发跨平台兼容性问题,尤其在64位系统中
    2025-08-08
  • 基于Matlab实现BP神经网络交通标志识别

    基于Matlab实现BP神经网络交通标志识别

    道路交通标志用以禁止、警告、指示和限制道路使用者有秩序地使用道路, 保障出行安全.若能自动识别道路交通标志, 则将极大减少道路交通事故的发生。本文将介绍基于Matlab实现BP神经网络交通标志识别,感兴趣的可以学习一下
    2022-01-01
  • 利用c++编写简易版2048小游戏

    利用c++编写简易版2048小游戏

    这篇文章主要介绍了如何让利用c++编写简易版的2048小游戏,感兴趣的小伙伴请参考下面文章的具体内容
    2021-09-09
  • C语言杨氏矩阵简单实现方法

    C语言杨氏矩阵简单实现方法

    杨氏矩阵是一个数字矩阵,矩阵的每一行从左到右一次递增,矩阵从上到下递增,在这样的矩阵中查找一个数字是否存在。时间复杂度小于O(N),有需要的朋友可以借鉴参考下
    2023-02-02
  • C语言深入探索数据类型的存储

    C语言深入探索数据类型的存储

    使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。您可能需要存储各种数据类型的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么
    2022-07-07
  • Visual Studio 2019配置qt开发环境的搭建过程

    Visual Studio 2019配置qt开发环境的搭建过程

    这篇文章主要介绍了Visual Studio 2019配置qt开发环境的搭建过程,本文图文并茂给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • C语言玩转指针之指针的高阶玩法

    C语言玩转指针之指针的高阶玩法

    指针可以表示一个变更的地址,在计算机程序中,通常表示内存地址,存储数据的地址,下面这篇文章主要给大家介绍了关于C语言玩转指针之指针的高阶玩法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-10-10

最新评论