Mono C# 编译器在编译时是否对循环进行并行化?

发布于 2024-11-30 11:44:34 字数 222 浏览 1 评论 0原文

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

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

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

谢谢。

not much more than the title says. If I do:

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

will the compiler parallelize this code in any way? I'm asking because I see 3 of the 4 cores light up when run.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

携余温的黄昏 2024-12-07 11:44:34

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

这并不是说 .Net 不会在您的所有核心上触发,但您发布的代码片段应该是单线程操作。

Simply, by default I believe that no it doesn't; because MS.Net doesn't.

That's not to say that .Net isn't firing on all your cores, but the snippet you posted should be a single thread operation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文