众所周知,磁盘 I\O 很昂贵。我通常使用 C# 从 .txt 文件中一次读取一行。我突然想到,如果 C# 给你一种一次读取 100 行的方法,它将需要更少的磁盘往返,从而减少时间。这可能吗?有没有人对如何提高效率有任何想法。我在大约一个小时内浏览了一个包含 100 万行的文件,一次读取和处理一行。我想看看我是否可以显着减少这个时间。
问问题
54 次
1 回答
5
AFileStream
为您执行此操作,它有一个内部缓冲区并以块的形式读取文件。它恰好File.ReadLines
使用StreamReader
基于 aFileStream
并返回IEnumerable
基于行的 a 。它本质上为你做了一切。
我的建议是只使用File.ReadLines
如果您需要对内部缓冲区和块大小进行更细粒度的控制,请使用FileStream
with StreamReader
which 允许配置这些问题,等等……
于 2020-06-26T01:35:42.783 回答