IO读取文件c#
本文关键字:文件 读取 IO | 更新日期: 2023-09-27 18:09:29
我正在从指定的路径读取所有文件(大约3000个文件,大小为50 GB),每次4k字节。下面是相同的代码。我的查询是当我在任务管理器中看到应用程序的CPU和内存时,我可以看到IO读取逐渐增加到高水平,我可以理解这可能是因为4k读取,但这会影响到其他事情,或者可以增加IO读取。此外,FileStream是读取文件的最佳方式,因为它不将整个文件加载到内存中?
fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)
do
{
BytesRead = fileStream.Read(Buffer, 0, MAX_BUFFER);
}
while (BytesRead != 0);
fileStream.Close();
看看Hans Passant对这个问题的回答,我觉得很清楚。
文件已经被文件系统缓存了,你只需要选择一个不会迫使FileStream生成本机的缓冲区大小Windows ReadFile() API调用填充缓冲区太频繁。不要去小于1kb,大于16kb是浪费内存。
也看看这篇文章,它提供了一些基准测试代码。