I haven’t used process explorer, but is that really how it works? If, for example, you had an old single-core game/app that was maxing out a core with nothing else running on the other cores, are you saying that the single core being used would still show only 12.5% at maximum load? I can’t see the logic in that.
As an aside, I use MSI Afterburner which can easily be set up to show individual core usage (amongst many other system parameters) and gives you a reasonable historical graph of core loads - about 10 minutes on screen.
You got that a bit mixed up. If you have an 8 core CPU and an application running on 1 thread, you would see 12.5% overall CPU load.
If you'd have a single core CPU running the same application, you would see 100% CPU load.
Now with the 8 core CPU it depends on the windows version and exact CPU how these 12.5% overall load are spread and shuffled across the 8 cores.
Ryzen 3xxx CPUs would show one or two cores almost maxed out and boosted to max frequency.
With my older i7: well you see the Screenshots above.
So in the end, when you know what piece of hardware is limiting your fps it's these steps:
1. Graphics card at 100% load or not (some games use too much power or gpu ram so let's say 90% for gpu limit)
2. If gpu not at 90+% => CPU limit
3. If CPU overall load not at 90+% => single thread limit
So if your overall CPU load isn't at 90% or more, buying a CPU with more cores might give you some alight improvement in fps due to better shuffling and headroom but the real performance boost would come from a cpu with a higher single thread performance.
Which is why an i5 8600k will shred an AMD 2700 to pieces in AC, r3e, ams, rF2.
About afterburner, Taskmanager etc : they all show the average load of the core over a certain time frame.
In reality a cpu load can't be loaded to let's say 40%.
It's either doing a task at full load or it waits.
Depending on how much it works and how much it waits, you'll see an averaged load.
With a single thread application on an Intel it will look like this:
0ms = core 1 at 100%, core 2-8 wait
10ms = core 2 at 100%, core 1+3-8 wait
1000ms = core 1 at 100... You'll get the idea.
In the end one thread can only run on one core at the same time. So one thread can only cause a maximum overall cpu load of 100% divided by amount of cpu cores.
For me that's 12.5% and this is why a cinebench thread in process explorer shows 12.5% and can't use more of the cpu.
So if your gpu is at 70% and all your cores only show a load of 40%, you can see in process explorer if a thread hits the maximum.
If not, and there aren't more threads than cpu cores (20 cinebench threads on 8 core CPUs won't hit 12.5% anymore!), you are hitting your single thread performance limit.
Now the new AMDs show the same or even higher single thread performance than the current Intels but this would change quite drastically if you'd run 3 threads instead of one.
The AMD cores won't boost as high on 3 cores as it would boost on 1 core.