long lngSum = 0;
Parallel.ForEach(Partitioner.Create(0L, lngMax + 1), range =>
{
long local = 0;
//4cores : 9 ranges
//64cores : 97 ranges
for (long i = range.Item1; i <= range.Item2 - 1; i++)
{
if (i % 2 == 0)
{
local += i;
}
else
{
local -= i;
}
}
Interlocked.Add(ref lngSum, local);
});
当我在 4 核机器上运行此 C# 代码时,总 CPU 使用率为 100%。
但
当我在 64 核机器上运行这段 C# 代码时,总 CPU 使用率不是 100%,只有 50~60%
如何使用 100% 的机器功率?