为了模拟100%的CPU使用率,我在代码中放置了一个无限循环(while(true){})。 这似乎使CPU使用率高达30%(对于没有while循环运行的同一程序,通常为2%)。 为什么不超过30%?这是一款双核Intel i7处理器。该应用程序是一个简单的控制台应用程序,在.net 4.0上运行c#代码
private static void SimulateCPUSpike()
{
while(true) { }
}
答案 0 :(得分:4)
CPU使用率是所有 CPU核心的百分比 如果您的代码只运行一个线程,则它不能占用多个核心。
您需要为每个核心创建一个单独的线程。 (Environment.ProcessorCount
)
答案 1 :(得分:0)
双核cpu,每核2个超线程。因此,您可能希望1个100%使用率的线程占总数的25%。另外5%是系统正在做的其他事情。
即使有4个线程,由于安排,您可能无法获得100%的使用率。
真正的问题是,为什么要100%使用...你想在CPU上煮牛排吗?