执行时间差异的原因是什么?

时间:2015-03-10 10:03:33

标签: c difference execution-time

我编写了一个程序来读取5MB文件并对其执行一些操作。我用两种方式做到了,第一种是一次读取1MB,执行操作,然后读取1MB

char line[1024*1024];
    while(!feof(file1))
    {
    k = fread(line,1024*1024,1,file1);

    for(i=0;i<strlen(line)-1;i++)
    line[i] = line[i+1];
    }

下一个方法是一次读取5MB并执行操作。

char line[5*1024*1024];
    while(!feof(file1))
        {
        k = fread(line,5*1024*1024,1,file1);

        for(i=0;i<strlen(line)-1;i++)
        line[i] = line[i+1];
        }

第一个在3分钟内完成,第二个在26分钟内完成。我的缓存大小为3MB。缓存是否有任何重要意义?当我尝试读取3MB并进行操作并进一步阅读剩余时间时,花了15分钟。所以我完全不知道为什么会这样。请告诉我这是如何执行的,以及为什么我在执行时间方面会有如此巨大的差异。

0 个答案:

没有答案