我很好奇 Parallel.ForEach 的性能特征。给定 Parallel.ForEach 循环内的任何有效构造,使用 Parallel.ForEach 是否总是比 foreach 循环更可取?我特别想知道在小型集合或 foreach 循环可能更快的其他边缘情况下调用并行任务库的开销。我知道该库对于何时/如何生成线程非常聪明...是否存在最好将代码留在 foreach 循环中的情况,或者调用并行任务的开销通常可以忽略不计,所以如果可以的话,您应该使用Parallel.ForEach?
这个问题是相似的,提供了很好的功能差异信息,但并没有真正谈到性能。请注意,我忽略了对 .NET
C#:与普通的 foreach 循环相比,List.ForEach(...) 有什么好处吗? https://stackoverflow.com/questions/1924535/c-any-benefit-of-listt-foreach-over-plain-foreach-loop
这并不总是更好。对于快速循环体,Parallel.ForEach 会降低性能。中列出的指南之一并行编程编码指南 http://download.microsoft.com/download/b/c/f/bcfd4868-1354-45e3-b71b-b851cd78733d/parallelprogramsinnet4_codingguidelines.pdf is to measure并行化之前和之后。
其他有用的文章已由并行计算组 http://msdn.microsoft.com/en-us/concurrency/ee851578.aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)