Using "Processor Queue Length" to determine CPU bottleneck

2is

Diamond Member
Apr 8, 2012
4,281
131
106
I've been playing with this in the "Performance Monitor" utility and it got me thinking... Why we don't use this tool to determine if we have a CPU bottleneck? Particularly during gaming?

Task Manager becomes increasingly difficult to determine a CPU bottleneck once we get into multi-threaded games and multi-core processors, and becomes especially convoluted when we throw Hyper-Threading into the mix.

Processor Queue Length however appears to me like it would be the "go to" metric to determine a bottleneck and pretty much anyone can use and understand what's going on. Bascially, the longer the queue the worse your bottleneck. According to Microsoft If the Ready threads per processor value is > 2 with some frequency this may indicate a processor bottleneck.

For those that want to dabble with this, launch Performance Monitor > Click "+" symbol > expand "system" section and add "Processor Queue Length" to the chart.

Thoughts?
 
Last edited:

Tuna-Fish

Golden Member
Mar 4, 2011
1,645
2,464
136
It doesn't really work for games. The number means the amount of threads currently waiting for execution that are not being run. If you have more cores than the game can use, and the game reuses a small amount of threads for it's work instead of spinning up a lot of them to wait, you can have queue lengths of 0 because all threads are running or dormant, and yet still be completely bottlenecked by the CPU.

The best measure to find out if you are bottlenecked by your CPU is not looking at the task manager, it's just to look at the frame rates you get at your normal resolution and the lowest one available. As reducing resolution cuts the work of the GPU almost linearly, if you don't see any speedup when you cut resolution, it means the problem is probably your CPU.