gpt4 book ai didi

C# 非常慢的 StreamReader

转载 作者:行者123 更新时间:2023-11-30 20:06:17 29 4
gpt4 key购买 nike

我正在使用我编写的一些不是最佳的代码...:-|

我有以下代码:

string fmtLine = "";
string[] splitedFmtLine;
int counterFMTlines = 0;

foreach (string fmtF in fmtFiles)
{
using (StreamReader sr = new StreamReader(fmtF))
{
while ((fmtLine = sr.ReadLine()) != null)
{
Console.WriteLine(counterFMTlines++);
foreach (L3Message message in rez)
{
splitedFmtLine = Regex.Split(fmtLine, "\t");

if (message.Time == splitedFmtLine[0])
{
message.ScramblingCode = splitedFmtLine[7];
}
}
}
}
}

当 List 为空并且只有一个文件(制表符分隔,280000 行)时,我测试了这段代码,即使如此,我的文件的所有 280000 行也花了一生(1 分钟)。这意味着执行跳过了 foreach 循环,其中是我的 myObjs 列表。

我不明白为什么花了这么长时间?

例如,我用不同的文本文件(源文件)填充我的 myObjs 列表(树层次结构),但大于此制表符分隔(制表符分隔:16MB,源文件:36MB),与此 1 相比只用了第二个分钟。

最佳答案

您正在向控制台写入 280.000 次,这非常慢。删除控制台输出。此外,使用 string.Split('\t') 比这个特定的正则表达式调用要快得多。

关于C# 非常慢的 StreamReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9955916/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com