Parallel.ForEach 与 foreach 的指导原则是什么?

2024-02-22

我很好奇 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(使用前将#替换为@)

Parallel.ForEach 与 foreach 的指导原则是什么? 的相关文章

  • 在 .NET 中使用正则表达式提取 URL

    我从以下 URL 中的示例中获得了灵感csharp 在线 http en csharp online net CSharp Regular Expression Recipes E2 80 94Extracting Groups from
  • MEF零件配置,存放在哪里?

    In ASP NET NET 4 0 MEF 我将所有部件放在一个文件夹中并使用导入它们DirectoryCatalog 一切安好 部分部件有相关配置 我不想把它们放进去web config 也许一个好的方法是config文件就在带有 co
  • F# 中的选项类型如何工作

    因此 我一直在阅读 Apress 的 Expert F 书籍 主要将其用作构建玩具式 F 库时的参考 但有一点我未能掌握 那就是 Option 类型 它是如何工作的以及它在现实世界中的用途是什么 选项类型至少为similar to Null
  • GetCharIndexFromPosition() 获取最后一个字符

    我想获取光标下的子字符串富文本框 http msdn microsoft com en us library system windows controls richtextbox 28v vs 110 29 aspx private vo
  • WPF MVVM 应用程序服务层中的 ObservableCollection

    我在 Internet 上看到的 WPF MVVM 应用程序示例将 VM 视为与服务层交互的层 该服务层要么使用外部库中的 旧 事件 要么使用 HTTP 或其他方式与 Web 交互 但是如果我自己构建所有 M V VM 服务和其他部分怎么办
  • 对象 xml 反序列化问题?

    我的对象具有父子关系 每个子对象都有一个Parent指向其容器的属性 当这个对象在应用程序中创建时 它就被设置了 因此没有问题 此 Parent 属性标记有 XmlIgnore 属性 因为它需要设置为其运行时父实例 那么 在对象反序列化后初
  • File.ReadAllLines 或流读取器

    我们可以使用以下方式读取文件StreamReader http msdn microsoft com en us library vstudio system io streamreader或通过使用File ReadAllLines ht
  • 如何使用 C# 调用 REST API?

    这是我到目前为止的代码 public class Class1 private const string URL https sub domain com objects json api key 123 private const str
  • 使用 MessagingCenter 和标准 .NET 事件处理程序向感兴趣的各方通知更改有什么区别?

    使用 MessagingCenter 和标准 NET 事件处理程序向感兴趣的各方通知更改有什么区别 下面演示了同一事物的两个 未经测试的 实现 public class FooClass public event EventHandler
  • Silverlight 4relativeSourceFindAncestor绑定[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions Silverlight 4中会有Re
  • 我们可以使用 C# 录制发送到扬声器的声音吗

    我有一个软件 SoundTap Streaming Audio Recorder 它记录发送到扬声器的任何音频 无论流是来自网络还是来自某些文件或麦克风 我可以在桌面应用程序中制作这样的应用程序 以便我可以录制发送到扬声器的流 无论来源如何
  • vb.net if 简写

    有没有办法使用速记来做这样的事情 If Not txtBookTitle Text String Empty Then objBook DisplayName txtBookTitle Text End If objBook Display
  • C++/CLI 中的 ref 和 out

    我知道 C CLI 代码 void foo Bar x 转变为 Void foo ref Bar x 变成的 C CLI 代码是什么 Void foo out Bar x 您可以使用 OutAttribute using namespace
  • 如何在 Windows 10 PRO 上的 Visual Studio 2019 中添加对 Windows.ApplicationModel.DataTransfer 命名空间的引用

    Windows 10 Pro Visual Studio 2019 Net 版本 4 8 03752 几天前全新安装了所有内容 我正在尝试将 Windows ApplicationModel DataTransfer 命名空间添加到 Vis
  • 如何使用线程使 Windows 服务长期运行

    我有一个 win 服务托管一些我需要保持长时间运行的工作流程 一个 WorkflowApplication 和一个 WorkflowServiceHost 因为 OnStart 要求它完成并返回操作系统 所以我有一个在线程池中的另一个线程上
  • 如何将外部程序集的类型添加到工具箱控件? (WPF)

    我正在尝试在我的 WPF 应用程序中执行类似的操作 ToolboxControl ctrl new ToolboxControl Assembly assembly Assembly LoadFile file var category n
  • 装载组件

    有很多讨论展示了如何从 BIN 和 GAC 加载程序集 我的问题更笼统 我很想知道程序集加载是如何工作的 举例来说 在BIN文件夹中我们可以有 A dll A dll config A dll config 文件可能如下所示
  • 如何用 C# 发送原始以太网数据包? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有办法通过 C 将原始数据包以太网发送到其他主机 在 Windows 7 中 如果有区别的话 根据 Saint pl 的建议 我找
  • 使用 C# .NET 从操纵杆获取输入

    我在谷歌上搜索了这个 但我想到的唯一的东西已经过时并且不起作用 有人知道如何使用 C NET 获取操纵杆数据吗 由于这是我在研究 C 中的操纵杆 游戏手柄输入时在 google 上获得的最高点击次数 因此我认为我应该发布一个回复供其他人查看
  • 等于方法实现助手 (C#)

    每次我编写一些数据类时 我通常都会花很多时间编写 IEquatable 实现 我写的最后一堂课是这样的 public class Polygon public Point Vertices get set 实施 IEquatable 是一项

随机推荐

  • Spring环境下,我在新项目中还应该使用Hystrix吗?

    看来Hystrix https github com Netflix Hystrix已接近生命周期结束 Netflix 堆栈现在已被弃用 我们正在为一个全新的项目构建一个堆栈 我们需要一个断路器 我们的默认选择是 Hystrix 因为它众所
  • 我的设备没有收到其他通知 (FCM)

    我迁移到 Firebase Cloud Messaging 当第一次尝试发送消息时 我使用 Firebase 中的控制台收到了一条通知 然后在几分钟后尝试发送另一个通知 但我不再收到另一个通知 但在我的 Firebase 控制台中 它说它是
  • PowerShell 如何在解析的 JSON 上添加一些内容?

    我想使用 PowerShell 在解析的 JSON 中添加一些内容 我的代码 function ConvertFromJson string file System Reflection Assembly LoadWithPartialNa
  • 通过调用计算taxAmount的方法只能得到$0

    我在执行以下调用时遇到问题 特别是最后一个组件 Console WriteLine Taxpayer 0 SSN 1 Income is 2 c Tax is 3 c i 1 taxArray i SSN taxArray i grossI
  • 如何传递 shell 命令的实时 stdout 行以在 Rust 中运行?

    我想逐行获取命令行的实时输出 并将该行传递给另一个函数以进行进一步处理 我有以下代码用于读取输出 fn output x str gt Result lt Error gt let stdout Command new strace arg
  • 使用TDB2和OWL Reasoner配置fuseki

    这里是 fusioni jena 的新手 我设法让 fusioni 使用 tdb1 与 OWLFBRuleReasoner 一起运行没有问题 但无法使其与 tdb2 一起工作 http jena apache org 2016 tdb ht
  • Angular 5 中的页眉和页脚

    我正在用 Angular 5 创建我的网站 我的网站中有主页 商店和类别页面 最初 我决定在整个网站上保持页眉和页脚全局 我的意思是创建页眉和页脚组件并将它们用作指令
  • trigger.io Android 应用程序启动图像首选项问题

    刚刚完成了我的 trigger io 应用程序的第一个版本 并在 android 和 ios 平台上成功进行了测试 trigger io v1 4 forge 工具 v3 3 11 然而 我有一个小故障 我无法更改 Android 默认的
  • Java:catch 块可以是多态的吗?

    在我要复习的一篇论文中 我被问到 catch 块可以是多态的吗 如果属实 那么对我来说调用多个就没有意义catch块多态性 是否是多态性如果catch块无法命名并且仅在其方法头中包含参数 例如 try catch FileNotFoundE
  • Heroku 指南针 buildpack 指南针失败

    我正在尝试将指南针构建包推送到heroku服务器 https github com stephanmelzer heroku buildpack nodejs grunt compass https github com stephanme
  • 如何删除 json_encode() 函数上的反斜杠?

    如何去除 字符串上的反斜杠 使用时echo json encode 例如 注意 当你 echo str 时 不会有问题 但是当你 echo out 使用json encode the 反斜杠将会出现 有办法解决这个问题吗 json enco
  • 在 MongoLab 上运行的 MongoDB 中的日期语法是什么?

    对象 ID 不是 ObjectId 82he921he982he82 而是 id oid 82he921he982he82 但我不知道如何在 MongoLab 上的文档中创建日期值 s 如果您使用其中一个驱动程序 则可以通过该语言的 Dat
  • 如何在 iOS 中引用刚刚拍摄的照片?

    我正在编写一个应用程序 允许用户拍照然后在图像视图中显示它 我知道我需要编写一行类似于以下内容的代码 imageView image picker image 但我不确定我需要用什么来代替picker image 这就是我目前所拥有的 它给
  • 我们可以强制函数在c++中内联吗

    一般来说 inline关键字只是对编译器的一个请求 编译器会根据函数的实现来决定是否进行内联扩展 但是有什么方法可以强制函数内联吗 我们该怎么做呢 这完全依赖于编译器 一些编译器提供了执行您想要的操作的方法 For gcc看一眼this h
  • UnitTesting Android TabActivity 时出现 Nullpointer 异常

    我目前正在对示例 TabLayout 进行单元测试安卓网站 http developer android com resources tutorials views hello tabwidget html 我在进行单元测试时遇到 Null
  • Angular Material Snackbar 更改颜色

    我正在使用 Angular 7 和 Material Snackbar 我想将 Snackbar 的颜色更改为绿色 在 app component ts 中 我有 this snackBarRef this snackBar open re
  • Erlang:元组列表转换为 JSON

    我有一个元组列表 它们是 http 标头 我想将列表转换为 JSON 对象 我尝试 mochijson2 但无济于事 所以我有以下内容 Accept text html application xhtml xml application x
  • Savon—配置为使用 TLS 1.2

    我正在开发一个使用 Savon 连接到 SalesForce api 的旧项目 我收到此错误 UNSUPPORTED CLIENT TLS 1 0 has been disabled in this organization Please
  • oracle plsql:如何解析XML并插入到表中

    如何将嵌套的 xml 文件加载到数据库表中
  • Parallel.ForEach 与 foreach 的指导原则是什么?

    我很好奇 Parallel ForEach 的性能特征 给定 Parallel ForEach 循环内的任何有效构造 使用 Parallel ForEach 是否总是比 foreach 循环更可取 我特别想知道在小型集合或 foreach