LINQ vs PLINQ:开销何时超过收益?

时间:2011-12-10 00:09:09

标签: c#-4.0 repository-pattern asp.net-4.0 plinq

我正在研究基本上是电子商务类型的项目。我们的架构师已经得到客户的指示,使用PLINQ比LINQ更有益,因为它们并行工作并使用处理器的所有内核,从而快速响应。如果可能,客户建议是PLINQ +存储库。

所以我只想知道,在中小型应用中哪一个很好用。使用Plinq + Repository是否可行。根据我的发现,如果我们没有正确处理这些东西,我发现Plinq比linq有更多的开销。请帮帮我。

3 个答案:

答案 0 :(得分:1)

如果不了解有关您的申请的更多详细信息,则无法回答这个问题。 PLINQ有足够的开销将工作负载分散到工作线程,然后协调它们之间的工作。如果您正在处理数十万个实体并且每个实体都要完成大量工作,那么它可以从中受益。最后,真正知道PLINQ是否会让您受益的唯一方法是使用真实的数据集进行分析。

答案 1 :(得分:1)

for循环具有较小的主体时,它可能比等效的顺序循环执行得更慢。较慢的性能是由分区数据所涉及的开销和每次循环迭代调用委托的成本引起的。为了解决这种情况,Partitioner类提供了Partitioner.Create方法,使您能够为委托主体提供顺序循环,以便每个分区仅调用一次委托,而不是每次迭代调用一次

请参阅here

这适用于PLINQ。

有关PLINQ的信息,请参阅here

答案 2 :(得分:0)

LOL。

  

He who pays the piper calls the tune

但一般来说,这是一个工程问题。与建筑师和客户交谈,并确定他们将使用什么指标来衡量可交付成果的绩效。

然后使用这些指标找到最佳解决方案Linq,PLinq或其他,然后报告您的发现。

总的来说,所有技术都适用于某些东西,而应用程序的大小则以不同的方式进行衡量。因此,你的“小”一词毫无意义。