Performance Boost by using Physical Cores
First only very lazy sites mix up simultaneous thread count with core count.
Second the Windows scheduler understands when assigning threads to cores to assign them to unused cores first before doubling them up if the CPU has HT/SMT.
Third, the thread scheduler in Windows already assigns a thread to an idle core on an HT/SMT CPU before assigning a second thread to an busy core.
Fourth, setting affinity for an application doesn’t prevent the thread scheduler from assigning threads from other applications to non-idle cores, if there’s no idle cores available.
Affinity doesn’t buy you performance on a system when you have other apps running at the same time as the game. Physical cores don’t have one logical core that performs better than the other. The only thing that affects performance when it comes to HT/SMT cores is the overall workload for the CPU in terms of active threads system wide be low enough that doubling up threads per core is held at a minimum.
Actually limiting the number of available logical cores to half may actually hurt performance as GW2 does have, as I see it on my system, 35 threads. True only 3 take up the 70% of the total CPU cycles GW2 uses but that doesn’t mean only four or less threads ever want to run at the same time. If a logical core becomes available but a thread’s affinity mask prohibits running on that logical core, that thread has to continue to wait even if it’s the next one in the queue wanting to run.
RIP City of Heroes