我有一个无限大的文件。我要查找具有不同长度的某些字节数组的文件段的最大匹配项。
我现在要做的是这个。
1-创建了一个FileStream fs
ForEach byte b in fs.
save currentPosition.
//these byte arrays are different depending on b
ForEach byte array
while matching bytes
read from fs.
print matched sequence.
seek to position
现在程序运行缓慢。如何改善我从文件中读取的内容?
根据我的阅读,fs
有一个内部缓冲区,因此当我读取一个字节时,默认情况下它会向前看4kb。
我的问题: 我假设在while循环内fs中的字节顺序读取满足了该缓冲区的要求吗?
如果是这样,我找回时会怎样?缓冲区是否被销毁,并且我读取的每个字节数组的内容都再次被填充?因为我需要相同的缓冲区,但是我只想重申该缓冲区。
此外,在迭代完所有字节数组之后,我想继续下一个b
该缓冲区的操作,因为我真正想要的是相同的缓冲区,但是没有第一个字节。>
这是如何工作的?我是否需要为FileStream创建包装器,以自己读取一个字节数组(该缓冲区),并满足从该缓冲区中读取的内容?
编辑:从任务管理器中,我看到程序使用的处理器平均为2%。因此,程序运行缓慢的事实一定是由于读取了文件。