为什么在此示例中并行版本比顺序版本慢?

2024-02-27

在过去的几天里,我学习了一些关于并行性的知识,并且遇到了this http://msdn.microsoft.com/en-us/library/dd460703.aspx例子。

我将它与顺序 for 循环并排放置,如下所示:

private static void NoParallelTest()
{
    int[] nums = Enumerable.Range(0, 1000000).ToArray();
    long total = 0;
    var watch = Stopwatch.StartNew();
    for (int i = 0; i < nums.Length; i++)
    {
        total += nums[i];
    }
    Console.WriteLine("NoParallel");
    Console.WriteLine(watch.ElapsedMilliseconds);
    Console.WriteLine("The total is {0}", total);
}

我惊讶地发现 NoParallel 方法的完成速度比网站上给出的并行示例快得多。

我有一台 i5 电脑。

我真的认为并行方法会更快完成。

对此有合理的解释吗?也许我误解了什么?


顺序版本速度更快,因为在示例中每次迭代执行操作所花费的时间非常少,并且创建和管理多个线程会产生相当大的开销。

仅当每次迭代在处理器时间方面足够昂贵时,并行编程才会提高效率。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在此示例中并行版本比顺序版本慢? 的相关文章

随机推荐

  • 如何在 Swift 中返回 Array 的前 5 个对象?

    在 Swift 中 是否有一种巧妙的方法可以使用 Array 上的高阶方法来返回前 5 个对象 obj c 的做法是保存一个索引 然后通过数组循环递增索引 直到索引为 5 并返回新数组 有没有办法做到这一点filter map or red
  • 检查 URL 是否包含我已单击的链接的 href

    在列表中我有一些链接 ul class dropdowner li a href black Black a li li a href white White a li li a href blue Blue a li ul 我的另一个输出
  • 从 Joda 时间库迁移到 Java 时间(Java 8)

    我正在尝试从 Joda 时间库迁移到 Java 时间 Java 8 我无法找到相当于ISODateTimeFormat dateOptionalTimeParser in java time Joda ISO 格式化程序有很好的解析器 IS
  • Google 图表工具截断 y 轴标签

    与一个谷歌条形图 http code google com apis chart interactive docs gallery barchart html 这是我得到的 这是我的自定义选项 var options width 500 h
  • 当字符串列内容比已有内容长时,HDFStore.append(string, DataFrame) 失败

    我有一个通过 HDFStore 存储的 Pandas DataFrame 它本质上存储有关我正在执行的测试运行的摘要行 每行中的几个字段包含可变长度的描述性字符串 当我进行测试运行时 我创建一个新的 DataFrame 其中包含一行 def
  • 如何在 Angularjs 中刷新控制器?

    我正在为一个应用程序使用 Ionic Framework 并且只专注于其中一个部分 在我的应用程序中 我有一个收藏夹视图 它显示用户在应用程序中其他地方收藏的项目列表 问题是 控制器中的代码仅在第一次点击收藏夹路由时运行一次 如果用户随后在
  • 如何在没有共同历史的情况下将分支合并到 GIthub 上的主分支

    我想从 Github 上不受我控制的远程存储库克隆一个特定分支 然后我想将其推送到我在 Github 上控制的存储库 在 Github UI 上 我在我的帐户下创建了我控制的新存储库 然后 我将我无法控制的远程存储库分支克隆到本地计算机上
  • Pyinstaller 和 cython 应用程序文件太大

    我正在创建可以在我的笔记本电脑上运行而无需安装 Python 的可执行文件 下面的工作完美 pyinstaller r file a so dll file a so r file b so dll file b so F bin hell
  • Vue.js - 更改我动态创建的未定义的 img 源

    我正在使用 vue js 和第 3 方 API 我已经成功获取到了json数据并在我的 html 中呈现它 但我正在努力处理图像 部分图片缺失json文件 所以我将它们本地存储在我的笔记本电脑中 我尝试在 html 中使用 v if 设置空
  • 如何在配置阶段使用相邻子项目中的类

    我想编译一个子项目 然后将这些类放在类路径中建造时另一个子项目 自定义塔斯将使用第一个塔斯创建的类 目前我正在尝试 buildscript dependencies classpath project MyOtherProject 结果如下
  • 在 Oracle 中始终获得小数点后两位的最佳方法是什么?

    在 Oracle 返回的值中始终保留 2 位小数的最佳方法是什么 目前我正在将所有与数据库相关的 PHP 函数包装在number format等等 但我想将它们直接移到 SQL 查询中 更好的是 当我连接到 Oracle 时 是否可以设置一
  • SQL查询自动转换为ElasticSearch查询

    我有一项当前将数据存储在 Oracle DB 中的服务 我正在开发一个项目 我需要运行一组 sql 查询来获取一些聚合数据 我想将这些查询存储在一个地方 我可以对其进行迭代并获取所需的数据 比如说 我今天有 10 个疑问 但是 我可以继续添
  • 将旧服务器上的“错误”MySQL 编码转换为新服务器上的正确 UTF-8

    我在 Web 服务器上设置了一个 Web 项目 编码明显错误 但不知何故 我真的不知道为什么 我们想出了如何处理它并且编码对我们有用 但现在我们将数据移动到具有正确设置的 UTF8 数据库的新服务器 令人惊讶的是 编码是错误的 我们如何 纠
  • 如何清空原始数组?

    我有以下课程 public class Person private String id private Score scores public Person getters and setters etc 我怎样才能最好地删除所有Scor
  • awk 如何将 unix 命令的结果作为参数?

    假设有一个带有制表符分隔字段的输入文件 第一个字段是整数 1 abc 1 def 1 ghi 1 lalala 1 heyhey 2 ahb 2 bbh 3 chch 3 chchch 3 oiohho 3 nonon 3 halal 3
  • 在 Windows UWP 应用程序中将 Python 与 C# 一起使用

    我开始使用 Python 编写应用程序 但现在想切换到 C 和 UWP 我知道您无法使用 Python 编写 UWP 应用程序 但我正在尝试查看是否可以使用 Python 编写一些代码并从 C 访问该代码 例如 用 Python 编写一个
  • 将 BPMN 2.0 XML 导入 MS Visio 2010 或从 MS Visio 2010 导出 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想将 BPMN 图表从 Visio 2010 Premium 导出为 BPMN 2 0 XML 格式
  • 从 noflo 开始,从 nodejs 运行它

    我运行了一个简单的 noflo 示例来自诺弗洛 但我没有弄清楚 noflo 应该如何与节点和其他代码一起工作 起初我有这个 fbp 文件 In the graph we first need to define the nodes and
  • 非关联浮点加法示例

    我正在写一篇关于浮点数的文章 我在 Javascript 控制台中放入了一些简单的测试来尝试 我正在寻找非交换加法的示例 即 x y z z x y 如果您有一些有效的 x y z 值 谢谢 没有这样的例子 因为按照 IEEE 754 的定
  • 为什么在此示例中并行版本比顺序版本慢?

    在过去的几天里 我学习了一些关于并行性的知识 并且遇到了this http msdn microsoft com en us library dd460703 aspx例子 我将它与顺序 for 循环并排放置 如下所示 private st