Я использую неоптимальный код, написанный мной ...: - |
У меня есть следующий код:
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];
}
}
}
}
}
Я тестировал этот код, когда список был пуст и был только один файл (с разделителями табуляции, 280000 строк), и даже тогда потребовалось время жизни (1 минута), чтобы пройти все 280000 строк моего файла. Это означает, что выполнение пропустило цикл foreach, где находится мой список myObjs.
Я не могу понять, почему это заняло так много времени?
Как пример, я заполнял свой Список myObjs (древовидная иерархия) другим текстовым файлом (исходным файлом), но больше, чем разделитель этой вкладки (разделитель табуляции: 16 МБ, исходный файл: 36 МБ), и это заняло всего секунду против этого 1 минут.