测试c语言程序性能的方法

在c语言程序当中,我们想要得到程序的运行性能该怎么办呢?

首先我们可以利用time.h库来计算程序运行时间

给出代码,测试一个简单的程序性能

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int add(int m, int n)

{

    return m + n;

}

int main()

{

    int m = 50;

    int n = 60;

    clock_t start_time, end_time; //clock_t为long类型

    start_time = clock();  //程序开始有多少个计时单元

    // 执行一定次数的加法运算

    int iterations = 1000000;   

    for (int i = 0; i < iterations; i++) {

        int result = add(m, n);

    }

    end_time = clock();

    // 计算总耗时

    double elapsed_time = (double)(end_time - start_time) / CLOCKS_PER_SEC;

    printf("Total iterations: %d\n", iterations);

    printf("Elapsed time: %.6f seconds\n", elapsed_time);

    printf("Average time per iteration: %.6f seconds\n", elapsed_time / iterations);

    return 0;

}

代码解释:(1)在这个程序中我们导入了time.h头文件,在time.h文件中clock()函数的作用是返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在调用函数开始到结束都调用了这个函数。

(2)如何计算程序的耗时?我们通过time.h中的宏常量CLOCKS_PER_SEC来计算程序耗时,它用来表示一秒钟会有多少个时钟计时单元,每过千分之一秒(1毫秒),调用clock()函数返回的值就加1,那么程序运行的总计时单位除以一秒钟有多少个时间单位就可以得到程序允许的耗时。double elapsed_time = (double)(end_time - start_time) / CLOCKS_PER_SEC

测试结果

1.我们可以通过修改iterations的值来改变add()的调用次数,先设置为10000次,来检测程序的运行时间

 2.我们可以看到程序的总运行时间为0.002秒,那么可不可以更加精确呢?是不可以的,因为在c/c++标准库中对于时间的精确程度只能到达千分之一毫秒(一毫秒)。那么为什么程序平均运行时间为0呢?因为每次运行时间都小于一毫秒,所以是显示不出来的

3.我们可以通过改变iterations的值来改变运行次数,这次我们设置为一千万次。来看看运行结果

 可以看到这次运行时间增加了。随着次数的增加时间必然会增加。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值