Skip to content

Latest commit

 

History

History
98 lines (76 loc) · 3.63 KB

File metadata and controls

98 lines (76 loc) · 3.63 KB

History

I started this project as a means to test the claims made by CPUCores. In particular, I wanted to know if tweaking the priority and/or affinity of a game would increase one's frames per second (FPS).

TL;DR The Windows scheduler is best left alone. In nearly every scenario, you are better off closing extraneous processes than messing with affinity and priority. When tweaking the priority, there was, at best, very little discernible difference (.3 FPS, well within the margin of error). At worst, realtime priority performed much, much worse than normal priority. In my benchmark tests modifying the affinity of a process often caused more harm than good.

Hardware

Platform: Windows 10 x64
CPU model: AMD FX(tm)-8350 Eight-Core Processor (4334MHz)
GPU model: NVIDIA GeForce GTX 1080

NovaBench (Integer Operations per Second)

In the following three tests, priority appears to have little or no affect. From this we can conclude that priority doesn't really come into effect until the CPU begins to run out of resources. Low Priority:
644,990,520
647,550,960

Normal Priority:
644,470,960
649,479,264

Realtime:
649,768,344
648,146,528

In the following 4 tests, yes the dedicated single core affinity performs better than the shared affinity; however, the output is on par with the numbers from the above tests where the affinity wasn't set, i.e. the scheduler is actually pretty good at its job. Normal Priority Single Core Dedicated Affinity:
648,648,184

Normal Priority Single Core Shared Affinity:
441,061,368
461,104,872

Realtime Single Core Shared Affinity:
422,479,352
428,741,880

Low Priority Single Core Shared Affinity:
426,373,288

For the tests below I forced everything on to two cores with NovaBench running on one of those two cores.
Low Priority:
177,674,952
149,457,080

Below Normal Priority:
183,248,112

Normal priority:
224,059,136
218,839,680

Realtime priority: (WTF?)
105,269,104
75,479,840

Unigine Heaven Benchmark 4.0

In a two core affinity configuration, I was getting 13-15 FPS. The sound was buffeting in and out which was very annoying.

In a dedicated 4 core affinity configuration, there were two main threads observed; however, my per core speed simply isn't fast enough to keep up. The load would occasionally jump to two other cores. When I flip and rotate a screenshot of my Task manager the valleys of the first two cores match up almost exactly with the peaks of the latter two cores. The sound would stutter and there were these obnoxious staticy popping sounds which was rather annoying.

Low Priority:
FPS: 37.6
Score: 946
Min FPS: 19.7
Max FPS: 91.5

Baseline:
FPS: 37.6
Score: 948
Min FPS: 20.7
Max FPS: 93.8

Realtime:
FPS: 37.8
Score: 952
Min FPS: 21.0
Max FPS: 94.7

Shared 4 core affinity:
FPS: 37.9
Score: 954
Min FPS: 21.0
Max FPS: 95.9

Dedicated 4 core affinity Realtime:
FPS: 34.0
Score: 856
Min FPS: 17.3
Max FPS: 86.2

In Conclusion

I strongly recommend that you let the scheduler do its job. Close extraneous processes (I'm looking at you, Chrome). These results are far from scientific. Your mileage may vary.