L'impostazione dell'affinità indica a quel processo su quali processori è autorizzato a funzionare.
Sebbene molto utile per alcuni casi di nicchia, l'utente medio probabilmente non dovrebbe scherzare con esso.
Ad esempio, se a un processo fosse consentito l'esecuzione del proprio core, potrebbe essere eseguito in (quasi) tempo reale senza che quelle 70 utility di Windows interrompano costantemente e scambino lo stack sul processore per il proprio intervallo di tempo. Le applicazioni in tempo reale erano qualcosa che Windows non avrebbe mai potuto fare prima che i sistemi multi-processore / multi-core entrassero in scena perché il sistema operativo avrebbe costantemente interrotto / scambiato le applicazioni per i propri scopi. Ciò può ora essere superato principalmente isolando l'applicazione in tempo reale da un processore, impedendo a tutte le altre applicazioni del sistema di utilizzare quel processore. Questo è un argomento di nicchia ma i sistemi come simulatori di volo (reali), automazione di fabbrica e sistemi di feedback di controllo dipendono dall'architettura in tempo reale per funzionare.
Le applicazioni a uso intensivo di processore (come le macchine virtuali) possono essere isolate nel proprio core in modo da poterle utilizzare senza trascinare il resto del sistema in una scansione. In teoria, un hypervisor in esecuzione su un processore che supporta l'interazione dell'hypervisor bare-metal può raggiungere prestazioni del processore pari al sistema operativo indipendente in esecuzione da solo (meno il processore necessario per eseguire il sistema operativo host). Ovviamente, in pratica anche una VM in esecuzione sul proprio core / processore isolato dovrà comunque accettare una piccola quantità di overhead dall'host del sistema operativo host.
Per le applicazioni che gestiscono una grande quantità di dati in flusso, isolare l'applicazione sul proprio processore (e potenzialmente utilizzando ancora più core) ridurrà lo scambio di cache.
Le applicazioni meno recenti che si rompono quando sono distribuite su più processori possono essere effettivamente limitate a un core / processore per risolvere il problema.
Se stavi eseguendo misurazioni delle prestazioni su una specifica applicazione, è quasi impossibile ottenere risultati coerenti su sistemi diversi a meno che tu non riesca a isolare il processo perché, altrimenti, non hai alcun controllo su quanto tempo il sistema operativo impiega la tua applicazione. Molte persone concordano sul fatto che la misurazione delle prestazioni di runtime non dia buoni risultati, ma quelle persone non hanno mai considerato che l'intervento del sistema operativo (che rende i risultati così incoerenti) possa essere limitato usando l'affinità.
Ci sono molti casi in cui l'affinità è vitale ma, se non sai cosa sono, probabilmente non ne avrai bisogno.