最近我对Linq和Plinq做了一些测量。 我看不出哪种情况对Plinq有实质性的好处。PLINQ有什么真正的好处?
我发现很多例子,如:
Enumerable.Range(0, 10000).AsParallel().ForAll(_ => Thread.Sleep(50000));
这是完全无用的例子,因为它可以用10000程度parallized是的话会快10000倍,但它的业务是罕见应用程序循环10000次并进行“IO作业”。
如果有人可以提一个例子,请发帖。
Plinq仅适用于Linq to Objects和Linq to XML。 不建议在运行于Web服务器的应用程序中使用它(它有自己的线程管理)。因此,我们的机会被削减为拥有多个核心的桌面应用程序。
通常我会写几分之一秒内连续运行的linq查询。如果我将其并列化,它确实会平行运行,那么速度会更快,但是谁在乎呢? 我认为它还是够快的。最终用户不会看到任何区别。
我可以想象一个例子,当有人从数据库获取所有数据并在内存中运行查询时。那么也许它是有用的,但它是一个错误的设计。
TPL是异步编程的好东西,但我仍然不确定Plinq是一个有用的工具。
有没有人有积极的经验呢?
*“不要认为并行总是更快”* ...您需要查看[PLINQ的潜在缺陷](http://msdn.microsoft.com/en-us/library/dd997403%28v= vs.110%29.aspx)! –
谢谢,我已经看过:) – speti43
没有必要修复什么不坏。 PLINQ对于多核计算机上的大数据很有意义。 –