程序重复运行时会越来越快?

今天学习time.h的计时用法,尝试循环运行求平均时间,结果显示循环次数越多,平均运行速度越快。

计时模板

使用头文件time.h

	double start, end;

    start = clock();

    //********************************** Your Programme
        

    //**********************************

    end = clock();
    printf("%if seconds", (end - start)/CLOCKS_PER_SEC);

多次运行求平均时间

运行几次便会发现运行时间有明显的波动,尝试重复执行求平均值

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

#define T 5 //循环次数

int main() {
    double start, end;
    double time_sum = 0;

    for (int exc = 0 ; exc < T ; exc++)
    {
        start = clock();

        //********************************** Your Programme
        function();
        //**********************************

        end = clock();
        time_sum += (end - start)/CLOCKS_PER_SEC;
    }

    printf("average %lf seconds\n", time_sum/T);

    return 0;

程序看着并没有问题,改变T运行了几次之后明显发现平均时间不同
以下记录结果的测试程序为

for (int i = 0 ; i < 1000 ; i++)
            printf("*");
TAverage_Time
10.037000
50.036000
100.033900
1000.032780
5000.031844
10000.031256

平均时间在明显地下降

经过测试,循环执行的程序中使用clock()仍不会改变这种下降的趋势,应该不是重复使用数据的原因。

个人猜测原因与硬件层面相关,求解答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值