迭代 - 速度问题

加入
2018年8月26日
消息
5
编程经验
10+
你好,

我正在努力解决迭代的速度问题。我的应用程序将文件从文件读取到内存中。然后处理字符串,并且内容被冷凝并存储在新文件中。这有点像查找对并将所有内容共同。来自几行的信息是插入新行。一行至少有一个字符串I存储在用户定义的类中。该对象被添加到列表中。有一些文件有超过800万条记录。

我该如何正确解释
C#:
private List<NewAWithBs> CreateAWithBsStructure(List<AAndBs> SG)        {
            List<NewAWithBs> Output = new List<AWithBs>();


            List<AAndBs> MIRG = new List<AAndBs>();


            var As = SG.GroupBy(x => x.A.Trim()).Select(x => x.FirstOrDefault());                             // Just to get the unique items. For each unique item the corresponding B values are added


            for (int i = 0; i <= As.Count() - 1; i++)
            {
                NewAWithBs mm = new NewAWithBs();
                mm.A = As.ElementAt(i).A;


                for (int j = 0; j <= SG.Count() - 1; j++)
                {
                    if (SG[j].A.ToUpper().Trim() == mm.A.ToUpper().Trim())
                    {
                        mm.Bs.Add(SG[j].B);
                        mm.Values.Add(SG[j].V);
                    }
                }


                Output.Add(mm);
            }


            return Output;
        }
这就像一个例子。过滤的列表可能会让我们说2,600个条目。和SG 8,900万甚至更多。这是一个诡计。轮流有另一种方式。当B被过滤时,列表可能包含30,000个唯一条目。两者都被占用了超过23个小时。该过程现在需要2.6 GB RAM。我可以提高速度是什么?还有很多更大的文件来处理。
 
最佳 底部