所以我有一个大约200万行的大文件。文件读取是我的代码中的瓶颈。欢迎任何建议的方式和专家意见更快地阅读文件。从该文本文件中读取行的顺序并不重要。 所有行都是管道'|'分开的固定长度记录。
我试过了什么?我开始并行StreamReader
并确保资源被正确锁定但这种方法失败了,因为我现在有多个线程争夺单个StreamReader
并且浪费更多时间锁定等因此使得代码进一步减速。
一种直观的方法是打破文件然后读取它,但我希望保持文件完整无缺,并且仍能以某种方式更快地读取它。
答案 0 :(得分:1)
我会尝试最大化我的缓冲区大小。默认大小为1024,增加此值应该会提高性能。我建议尝试其他缓冲区大小选项。
StreamReader(Stream,Encoding,Boolean,Int32)初始化一个新的 指定流的StreamReader类的实例,带有 指定的字符编码,字节顺序标记检测选项,和 缓冲区大小。