ser*_*0ne 23 .net c# concurrency performance task-parallel-library
我有一些代码,我目前正在优化多核架构中的并发性.在我的一个类中,我发现了一个嵌套foreach循环.基本上,外部循环遍历一个NetworkInterface对象数组.内循环通过网络接口IP地址进行迭代.
它让我思考,嵌套Parallel.ForEach循环一定是个好主意吗?阅读本文后(同一列表上的嵌套Parallel.ForEach循环?)我仍然不确定在效率和并行设计方面适用的是什么.此示例将Parallel.Foreach处理应用于列表的语句,其中两个循环都在该列表上执行操作.
在我的例子中,循环正在做不同的事情,所以,我应该:
Roy*_*tus 29
Parallel.ForEach不一定并行执行 - 如果可能的话,它只是一个请求.因此,如果执行环境没有CPU功率来并行执行循环,则不会这样做.
如果循环上的动作不相关(即,如果它们是分开的并且彼此不相互影响),我认为在内循环和外循环上使用Parallel.ForEach都没有问题.
这实际上取决于执行环境.如果您的测试环境与生产环境足够相似,那么您可以进行计时测试,然后确定要执行的操作.如有疑问,请测试;-)
祝好运!
| 归档时间: |
|
| 查看次数: |
17268 次 |
| 最近记录: |