In a nutshell: Don't touch it. It won't get better. At best, you won't notice any difference.
In detail:
The ProcessAffinityMask for IL-2 can be set in conf.ini.
You can do it manually or use this tool:
https://www.sas1946.com/main/index.php/topic,32520.0.htmlThe Operating System runs on all available cores, not just on Core 0.
It distributes processes across cores as it sees fit.
You cannot "exclude" a certain core from this process distribution (at least not as much as I know).
You can "pin" IL-2 to a certain core (or certain cores) using the ProcessAffinityMask setting and if IL-2 fully occupies this (these) core's resources, Windows will automatically try to run other procresses on other cores.
Theory and Practice:
IL-2 doesn't have multithreading capabilities builtin, hence it cannot make use of multiple cores to enhance the game's performance.
That's why for IL-2's performance CPU-wise only the single-thread performance is what counts.
In theory this means that when you let Windows decide on which core IL-2 should run, Windows will "distribute" the IL-2 process across all cores.
How can that be if IL-2 isn't multithreading capable?
Well, the Windows Kernel provides pretty small timeslices for the execution of processes, and it will simply let the main IL-2 process cycle across all available cores, so it will consume a single micro-time-slice on each core and then continue to execute on the next.
In theory this means a performance disadvantage, since there's a certain overhead required to shift a process from one core to another.
However this overhead is extremely small on contemporary processors, it's well below 1% of the core's power.
In practice IL-2 isn't exactly single threaded, at runtime you will have about 15-20 threads attached to the il2fb.exe process.
The thing is that all but one of these threads are inactive (in "wait" state) most of the time and only one thread (the main thread) is consuming all the power.
Still there are other threads, so pinning the il2fb.exe process to a single core means that all these threads are bound to that core.
In practice the processing power required by the "other" 14-19 threads is higher than the overhead required to shift the main thread across the cores.
That's why pinning il2fb.exe to a single core actually causes a very tine performance degradation instead of making things better.
Theory²:
Theoretically the best setting would be to run IL-2 on
2 cores (one for the main thread, one for the others) and to pin the main thread to one of these two cores.
This however would require a tool to set the affinity for
threads and not just for
processes.
I don't know of a system wide tool to provide such feature and if it exists, it will be a PITA to handle this each and every time when you start IL-2.
It would be possible (theoretically) to create a native mod for IL-2 to do this, but then again, we're talking about a 0.000x% performance margin only.
Not worth the hassle if you ask me.
Best regards - Mike