我什么时候应该在linq/plinq中使用AsParallel()

Fro*_*ggy 9 linq parallel-processing plinq

我正在寻找使用plinq在linq中利用并行编程的优势,我不确定我完全理解它的使用除了它将更有效地利用所有cpu核心这一事实,因此对于大型查询它可能更快.我可以简单地在linq调用上调用AsParallel()来使用eplinq功能,它会更快吗?或者我应该只在有大量数据要查询或处理时才使用它?

Ars*_*nko 7

你不能只假设并行执行总是更快.这取决于.在某些情况下,通过并行处理,您将在多核处理器上获得很多收益.在其他情况下,你只会减慢速度,因为并行循环在简单循环上有一个小的过热.

例如,请参阅我的其他答案,该答案解释了嵌入式并行循环可能成为灾难的原因.

现在,了解在精确上下文中使用并行循环是否是个好主意的最佳方法是测试并行和非并行实现并测量它们所花费的时间.