问题
To simulate 100% CPU usage, I placed an infinite while loop in my code ( while (true) { } ) . This seemed to spike the CPU usage up to 30% (ordinarily it is 2% for the same program that I run without the while loop). Why does it not go above 30%? This is a dual core Intel i7 processor. The app is a simple console app running c# code on .net 4.0
private static void SimulateCPUSpike()
{
while(true) { }
}
回答1:
CPU usage is a percentage of all CPU cores.
If your code is only running a single thread, it cannot occupy more than one core.
You need to make a separate thread for each core. (Environment.ProcessorCount
)
回答2:
Dual core cpu, 2 hyperthreads per core. So you might expect 1 thread at 100% usage to take 25% of the total. The other 5% is everything else that the system is doing.
Even with 4 threads, you may not get 100% usage, due to scheduling.
The real question is, why do you want 100% usage...are you trying to cook a steak on the CPU?
来源:https://stackoverflow.com/questions/19549399/how-do-i-simulate-100-cpu-usage