LINQ&有什么区别? PLINQ在执行方面

时间:2014-12-03 14:16:59

标签: c# linq plinq

我想知道LINQ&和LINQ之间的区别PLINQ在执行方面?

当我们应该使用PLINQ而不是LINQ时才讨论一些情况

这里给出了两个代码。一个由LINQ完成,另一个由PLINQ完成。

告诉我有什么不同以及两个代码在做什么?

LINQ

var q = from file in fileList  
         where file.Length > 10000 
        select file; 

PLINQ

var q = from file in fileList.AsParallel()
         where file.Length > 10000                      
        select file;

请参阅上面的代码并告诉我代码如何执行以及执行方面的区别是什么?感谢

2 个答案:

答案 0 :(得分:3)

当负载可以跨CPU核心传播时,PLINQ(以及一般的并行性)仅提供潜在的性能优势。并行性不会改善磁盘I / O,网络I / O或远程资源。它可以改善内存访问,但内存通常也受带宽限制。

运行代码并观察CPU使用情况。如果CPU的一个核心跳到100%,那么CPU就是一个瓶颈,你可能会从并行性中受益;否则CPU不是你的瓶颈,并行运行可能不会提高你的性能。

请注意,最后,唯一可以确定的方法是尝试两种方式并衡量差异。其他任何事情都只是猜测。

答案 1 :(得分:0)

PLinq是Linq的并行版本,这意味着某些查询可以在多个线程上执行,然后PLinq会提高性能。权衡取舍与您在使用并行编程或顺序Choosing between both之间进行选择相同。

请参阅此Might be helpful link