IO读取文件C#
我从指定路径读取所有文件(大约3000个文件,大小为50GB),每次读取4k字节。下面是相同的代码。我的问题是,当我在task manager中看到应用程序的CPU和内存时,我可以看到IO读取逐渐增加到高水平,我可以理解这可能是因为4k读取,但这是否会影响其他事情,或者增加IO读取是可以的。另外,FileStream是否是读取文件的最佳方式,因为它不会将整个文件加载到内存中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
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的数据。。。你想问什么?