我有一个包含 ~137000 条记录的实体列表,我循环遍历这些记录,然后我需要 linq 到包含 ~ 150000 的附加参数的元组列表
为什么它持续花费更长的时间,它的迭代次数越多?这是从秒表中找到的:136770 个符合条件的项目。
10,000 个项目处理 EllapsedTime:5473 即:0.0912166666666667 分钟。
20,000 个项目已处理 EllapsedTime:15307 即:0.255116666666667 分钟。
30,000 个项目已处理 EllapsedTime:30065 即:0.501083333333333 分钟。
50,000 个项目已处理 EllapsedTime:74507 即:1.24178333333333 分钟。
75,000 个项目已处理 EllapsedTime:157836 即:2.6306 分钟。
100,000 个项目处理 EllapsedTime:272495 即:4.54158333333333 分钟。
EllapsedTime:499663即:8.32771666666667分钟。
有什么办法可以优化吗?
List<Entites> alMatched
List<Tuple<int, double, int, int>> lsItems = new List<Tuple<int, double, int, int>>();
IEnumerable<Tuple<int, double, int, int>> enumThingy = lsItems;
for (int z = 0; z <= alMatched.Count() - 1;z++ )
{
Entity a = alMatched[z];
var newRepl = enumThingy.Where(d => d.First == a.ID).First();
if (newRepl != null)
{
}
switch (z)
{
case 10000:
Debug.Print("10,000 items processed " + ElapsedTime(sw.ElapsedMilliseconds));
break;
case 20000:
Debug.Print("20,000 items processed " + ElapsedTime(sw.ElapsedMilliseconds));
break;
case 30000:
Debug.Print("30,000 items processed " + ElapsedTime(sw.ElapsedMilliseconds));
break;
case 50000:
Debug.Print("50,000 items processed " + ElapsedTime(sw.ElapsedMilliseconds));
break;
case 75000:
Debug.Print("75,000 items processed " + ElapsedTime(sw.ElapsedMilliseconds));
break;
case 100000:
Debug.Print("100,000 items processed " + ElapsedTime(sw.ElapsedMilliseconds));
break;
}
}
问候
_埃里克