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++实现的O(n)复杂度内查找第K大数算法示例

    C++实现的O(n)复杂度内查找第K大数算法示例

    这篇文章主要介绍了C++实现的O(n)复杂度内查找第K大数算法,结合实例形式分析了算法的原理以及具体实现方法,需要的朋友可以参考下
    2017-08-08
  • 基于Qt+opencv开发的视频播放器示例详解

    基于Qt+opencv开发的视频播放器示例详解

    这篇文章主要为大家介绍了基于Qt+opencv开发的视频播放器示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Ubuntu18.04上安装Qt5.10的步骤实践

    Ubuntu18.04上安装Qt5.10的步骤实践

    Qt是一个跨平台的C++图形用户界面库,本文就介绍了Ubuntu18.04上安装Qt5.10的步骤实践,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 使用emacs编写C语言教程

    使用emacs编写C语言教程

    这篇文章主要介绍了使用emacs编写C语言教程,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • 详解C语言之动态内存管理

    详解C语言之动态内存管理

    本文主要介绍了C语言动态内存管理的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • C++11中列表初始化机制的概念与实例详解

    C++11中列表初始化机制的概念与实例详解

    在我们实际编程中,我们经常会碰到变量初始化的问题,对于不同的变量初始化的手段多种多样,下面这篇文章主要给大家介绍了关于C++11中列表初始化机制的相关资料,需要的朋友可以参考下
    2021-11-11
  • C语言 函数缺省参数详情

    C语言 函数缺省参数详情

    这篇文章主要介绍了C语言 的函数缺省参数、除了介绍函数全缺省参数,和半缺省参数还简单介绍了函数声明、函数调用等一些函数的定义,需要的朋友可以参考下面文章内容
    2021-09-09
  • C++实现Window环境聊天室功能

    C++实现Window环境聊天室功能

    这篇文章主要为大家详细介绍了C++实现Window环境聊天室功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • FFmpeg中AVIOContext的使用方法详解

    FFmpeg中AVIOContext的使用方法详解

    AVIOContext是FFMPEG管理输入输出数据的结构体,这篇文章主要为大家详细介绍了这个结构体的具体使用,文中的示例代码讲解详细,需要的可以参考一下
    2023-08-08
  • 使用pybind11封装C++结构体作为参数的函数实现步骤

    使用pybind11封装C++结构体作为参数的函数实现步骤

    这篇文章主要介绍了用pybind11封装C++结构体作为参数的函数实现步骤,本文分步骤通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02

最新评论