This is an old thread … BMS threading model has changed a lot (with move to DX11 and a whole new graphics engine in 4.35)… and also Windows threading model has changed a lot since ca. 2017. (Eg. starting with 20H1 apparently timeBeginPeriod no longer has crappy system-wide side effects… hooray for that.)
BUT if you have a 4-core cpu (or 2-core w/ HT) … imo it may still make sense to run BMS on 3 logical cores, and leave the 4th core open for the OS and graphics driver etc to do work without preempting BMS threads.
(The OS drives a couple of high-pri usermode threads … for things like input-dispatching, and for DWM sending frames to the graphics device… probably audio and networking stuff too. Seems maybe worthwhile to let the OS have a free core, to deal with all that…)
Anyway… if you have just 2 cores, it’s def not worth further constraining down to 1. And if you have 6 or more, probably not worth messing with process affinities or priorities.
But with 4-cores, I think this is still worth trying.
@start "BMS" /high /affinity 0x0E "C:\Falcon BMS 4.35\Bin\x64\Falcon BMS.exe"
;; 0x0E == 0000_1110 in binary
If 4-cores-with-HT… then I recommend either during HT off in the BIOS… or, constraining BMS to 3 cores (but! remember to use just the odd or even numbered cores… you definitely don’t want to squeeze 2 BMS threads into a single physical cpu core… hyperthreading is mostly a sham, especially for threads that are heavy on memory I/O).
@start "BMS" /high /affinity 0x2A "C:\Falcon BMS 4.35\Bin\x64\Falcon BMS.exe"
;; 0x2A == 0010_1010 in binary
Every system is different, so you just have to try this and see if impacts framerate. Eg. I expect recent generation Ryzen chips, with their ton of L3 cache, probably do better with HT left on, than do comparable Intel chips. But that’s just wild speculation, I haven’t run any side by side comparisons…