IO读取文件C#

IO读取文件C#,c#,file-io,C#,File Io,我从指定路径读取所有文件(大约3000个文件,大小为50GB),每次读取4k字节。下面是相同的代码。我的问题是,当我在task manager中看到应用程序的CPU和内存时,我可以看到IO读取逐渐增加到高水平,我可以理解这可能是因为4k读取,但这是否会影响其他事情,或者增加IO读取是可以的。另外,FileStream是否是读取文件的最佳方式,因为它不会将整个文件加载到内存中 fileStream = new FileStream(filePath, FileMode.Open, FileAcce

我从指定路径读取所有文件(大约3000个文件,大小为50GB),每次读取4k字节。下面是相同的代码。我的问题是,当我在task manager中看到应用程序的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();
看看这个问题,我觉得很清楚

文件已被文件系统缓存缓冲,您只需 选择一个缓冲区大小,该大小不会强制FileStream使 Windows ReadFile()API调用太频繁地填充缓冲区。别走 低于1 KB,超过16 KB是对内存的浪费

再看一下,它提供了一些基准测试代码。

检查一下这个问题,我发现它非常清楚

文件已被文件系统缓存缓冲,您只需 选择一个缓冲区大小,该大小不会强制FileStream使 Windows ReadFile()API调用太频繁地填充缓冲区。别走 低于1 KB,超过16 KB是对内存的浪费


再看一看,它提供了一些基准测试代码。

C版本在这里使用?我不知道这里的问题是什么。如果不进行大量IO,您无法读取50GB的数据。。。你想问什么?这里用的是C版本?我不知道这里的问题是什么。如果不进行大量IO,您无法读取50GB的数据。。。你想问什么?