Mono C# 编译器在编译时是否对循环进行并行化?
不比标题说的多多少。如果我这样做:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
简单地说,默认情况下我相信不,它不会;因为 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.