Affinity Mask could bring improvements to flight simulators. But the question is: how can we tell from a hypothetical value (or more precisely a CPU combination) that it will bring positive gains to our system before we put it in the configuration file (fsx.cfg or Prepar3D.cfg) ?
Frankly, I don’t have a good answer myself because there are so many variables involved. However, following is the approach I take to precheck the performances from different Affinity Masks in realtime, then thru which I pick the one I think the best for my set up.
- Load up a flight session in window mode (i.e. not in full-screen mode) and keep it running
- Right click on the Windows’ Taskbar and select Task Manager
- Click on the Performance tab on top of the Task Manager, and then select Open Resource Monitor at the bottom
- Search for the simulator being run (Prepar3D.exe here as an example) in the Resource Monitor, and check the box next to it for CPU monitoring
- Keep the Resource Monitor running and go back to Task Manager and click on the Details tab
- Search for the simulator being run again (Prepar3D.exe) and right click on it to select Set affinity
- Check or uncheck the CPU boxes to configure the combination desired from Processor affinity. Click [OK] to confirm after selection.
- With the Resource Monitor, Processor affinity and simulator running side-by-side, (a) swap to simulator screen; (b) expand to full screen; (c) fly to different populated areas; (d) move fast forward and backward in slew mode, etc, to get overall framerate, stutter and image rendering performances
- Repeat the process with different CPU combinations as many times as necessary. Then cross-check the results
- After deciding which CPU combination is the most ideal for the set up, use the Affinity Mask Calculator to convert the combination into decimal value for the AffinityMask in fsx.cfg or Prepar3D.cfg
All in all, the process of finding an optimal Affinity Mask sometimes may takes longer time than one expects. If you have not a clue where to begin, you can start by exploring the performance:
- with all processors enabled, then
- with CPU thread cores disabled (CPU1, CPU3, CPU5, etc) if Hyer-Threading feature is used, then
- the remaining cores disabled (CPU0, CPU2, CPU4, etc), then
- any combination
Furthermore, one might also make use of those “recommended” values found on the Internet to see if they fit.
The CPU charts on the Resource Monitor are good visual references showing how each CPU performs under different combinations. One could also base on them to select which CPU to disable/enable first, say the least/most active one.
No doubt, my approach is largely based on subjective judgements. However, it works for me most of the time.
If you are using a different approach or have a different idea about Affinity Mask, your sharing is greatly appreciated.