我在搜索文件内容时遇到性能问题。我使用$ cat file
{abcd}RandomAlphanumric
begin {abcd}adfCvr1243C end
类来读取文件(每次搜索将涉及~10个文件,每个文件大小约为70 MB)。但是,在我的搜索过程中,所有这些文件都会被另一个进程同时访问和更新。因此,我无法使用$ sed -e 's/{abcd}[[:alnum:]]*/new_myvar/g' file
new_myvar
begin new_myvar end
来读取文件。使用FileStream
中的缓冲区大小需要3分钟,即使我正在使用正则表达式。
有没有人遇到类似的情况,可以提供任何有关提高文件搜索性能的指示?
代码段
Buffersize
答案 0 :(得分:-1)
前段时间我不得不分析许多FileZilla Server日志文件,每个> 120MB。 我使用一个简单的List来获取每个日志文件的所有行,然后在搜索特定行时获得了很好的性能。
List<string> fileContent = File.ReadAllLines(pathToFile).ToList()
但在你的情况下,我认为性能不佳的主要原因是没有读取文件。尝试StopWatch循环的某些部分,以检查花费最多时间的位置。如果在像你这样的循环中多次使用,正则表达式和TryParse可能非常耗时。