我编写了一个程序来读取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分钟。所以我完全不知道为什么会这样。请告诉我这是如何执行的,以及为什么我在执行时间方面会有如此巨大的差异。