<分区>
有人告诉我,由于 .net linq 太慢了,我们不应该使用它,并且想知道其他人是否得出了相同的结论,例如:
执行 1000000000 次非 LINQ 比较需要 1443 毫秒。
用 4944 毫秒完成 1000000000 次与 LINQ 的比较。
(慢 243%)
非 LINQ 代码:
for (int i = 0; i < 10000; i++)
{
foreach (MyLinqTestClass1 item in lst1) //100000 items in the list
{
if (item.Name == "9999")
{
isInGroup = true;
break;
}
}
}
执行 1000000000 次非 LINQ 比较需要 1443 毫秒。
LINQ 代码:
for (int i = 0; i < 10000; i++)
isInGroup = lst1.Cast<MyLinqTestClass1>().Any(item => item.Name == "9999");
使用 LINQ 进行 1000000000 次比较需要 4944 毫秒。
我想可以优化 LINQ 代码,但我的想法是很容易获得非常慢的 LINQ 代码,并且不应该使用它。鉴于 LINQ 很慢,那么 PLINQ 也很慢,NHibernate LINQ 也很慢,因此不应使用任何类型的 LINQ 语句。
有没有其他人发现 LINQ 太慢以至于他们希望自己从未使用过它,或者我是否基于这样的基准得出了过于笼统的结论?