【问题标题】:Does the Mono C# compiler do any parallelization of a loop at compile time?Mono C# 编译器是否在编译时对循环进行任何并行化?
【发布时间】:2011-08-19 01:33:59
【问题描述】:

并不比标题所说的多。如果我这样做:

  int[] arr = new int[(long)Math.Pow(2, 25)];
  for (int j = 0; j < arr.Length; j++)
    arr[j] = j;

编译器会以任何方式并行化这段代码吗?我问是因为我看到 4 个内核中有 3 个在运行时亮起。

谢谢。

【问题讨论】:

  • 利用率总和是否超过 100%?除非线程与特定内核有某种关联,否则没有什么可以阻止单个线程从内核跳到内核。
  • 好点,@recursive。它确实超过了 100%,但这可能只是其他需要一些运行时间的任务,比如 top 本身。

标签: c# mono compiler-optimization


【解决方案1】:

简单地说,默认情况下我相信不,它不会;因为 MS.Net 没有。

这并不是说 .Net 不会在您的所有内核上触发,但您发布的 sn-p 应该是单线程操作。

【讨论】:

    猜你喜欢
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2022-01-11
    • 2013-10-14
    • 2012-12-11
    • 1970-01-01
    • 2016-05-07
    相关资源
    最近更新 更多