gpt4 book ai didi

.net - 控制并行执行的内核数

转载 作者:行者123 更新时间:2023-12-01 05:31:02 25 4
gpt4 key购买 nike

我已经安装了 NCrunch,它是一个用于(除其他外)并行测试执行的工具。它提供了两个设置 MaxNumberOfUsedCores 和 MaxNumberOfUsedThreads。第一个设置看起来很有趣。我不记得任何允许控制用于执行代码的内核的 .NET 方法。所以问题是怎么做?

最佳答案

你试过了吗 ProcessThread.ProcessorAffinity ? ProcessorAffinity 将每个处理器表示为一个位 .位 0 代表处理器一,位 1 代表处理器二,依此类推。例如:

var currectProcess = System.Diagnostics.Process.GetCurrentProcess();

foreach(System.Diagnostics.ProcessThread thread in currectProcess.Threads)
{
// this could give you something similar to MaxNumberOfUsedCores
thread.ProcessorAffinity = (IntPtr)0x0007; // Valid processors: 1, 2, or 3
}

现在我在 NCrunch 有以下配置,这看起来与之前的 c# 示例非常相似:
  • 分配给 NCrunch 的 CPU 内核数:0、1、2
  • 分配给 Visual Studio 的 CPU 核心数:3

  • 但只有 NCrunch @remco-mulder 的作者可以告诉我们,这是真的还是假的。

    顺便说一句:ReSharper 有类似的选项来控制单元测试的并行运行线程的数量。

    关于.net - 控制并行执行的内核数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11179533/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com