Parallel.ForEach与for与foreach效率问题

做到物流分拣项目,处理格口数据报警状态问题,使用了并行Parallel.ForEach。后面做了下几个循环的效率,也记录了一下; 

 

循环体内不做任何事情 时,发现Parallel.ForEach更耗时。Parallel.ForEach不是并行的吗,怎么会更耗时呢?颠覆了认知。。。。别急:这是因为循环体内执行的任务开销太小啦,Parallel并行管理的附加开销加上去反而时间更多。

 

 

如果循环体内执行相对耗时的任务,比如我现在在循环体内 Thread.Sleep(1);我们看一下效果

这下认知回来了; 效果非常显著。

所以选择哪一种循环,需要考虑  循环体任务的轻重 以及 循环量的大小。

 

来源链接:https://www.cnblogs.com/KimhillZhang/p/18644916

© 版权声明
THE END
支持一下吧
点赞8 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容