大文件读取速率问题
我使用ReadFile函数读取不同大小的文件,发现所用的时间并不是一种简单的线性关系,我设置的每次读写buffer为1M,当我读1G左右的文件时,全部读完(不处理)耗费时间不用1s,但是当我读25G的文件时,耗费时间却达到10m,有人能够帮我解释下吗?
主要代码大致如下:
DWORD dwTimeStart = GetTickCount();
while (TRUE)
{
if (!ReadFile(hFile, pBuffer, 1024 * 1024, &dwByteRead, NULL))
{
_tprintf(_T("Read file failed!"));
break;
}
if (dwByteRead == 0)
break;
}
DWORD dwTimeEnd = GetTickCount();