KimhillZhang  

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

 

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

 

 

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

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

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

 

posted on   KimhillZhang  阅读(205)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
 
点击右上角即可分享
微信分享提示