Question

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) { }
 }
Was it helpful?

Solution

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)

OTHER TIPS

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?

Surprisingly, this worked from a PowerShell prompt:

while(1) {Start-Job {while(1){}}}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top