O LINQ deve ser evitado porque é lento? [fechadas]
Disseram-me que, uma vez que o .net linq é tão lento que não devemos usá-lo, fiquei imaginando que alguém chegou à mesma conclusão, e o exemplo é:
Levou 1443ms para fazer 1000000000 compara não-LINQ.
Foram necessários 4944ms para fazer 1000000000 em comparação com o LINQ.
(243% mais lento)
o código não-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;
}
}
}
Levou 1443ms para fazer 1000000000 compara não-LINQ.
Código LINQ:
for (int i = 0; i < 10000; i++)
isInGroup = lst1.Cast<MyLinqTestClass1>().Any(item => item.Name == "9999");
Foram necessários 4944ms para fazer 1000000000 em comparação com o LINQ.
Eu acho que é possível otimizar o código LINQ, mas o pensamento era que era fácil obter um código LINQ muito lento e, uma vez que não deveria ser usado. Dado que o LINQ é lento, também se segue que o PLINQ é lento e o NHibernate LINQ seria lento, portanto, qualquer tipo na instrução LINQ não deve ser usado.
Alguém mais descobriu que o LINQ é tão lento que eles desejavam nunca o ter usado, ou estou fazendo uma conclusão muito geral com base em parâmetros de referência como este?