Anonim

La maggior parte dei PC Windows è ora alimentata da processori multi-core e le versioni recenti di Windows fanno generalmente un ottimo lavoro nel dividere automaticamente la potenza di elaborazione totale del PC per adattarsi al meglio alle app e ai giochi in esecuzione. Ma a volte l'utente e Windows possono avere idee diverse quando si tratta di prendere decisioni su come utilizzare al meglio la potenza della CPU di un PC, ed è qui che gli utenti esperti possono intervenire e limitare manualmente determinate app o processi a specifici core della CPU, grazie a una funzione chiamato Processor Affinity . Ecco come farlo.
Quando si tratta di versioni di Windows di livello consumer, la possibilità per un utente di configurare manualmente l'utilizzo di un'app specifica di core della CPU risale al periodo di tempo di Windows XP / 2000, sebbene i passaggi differiscano leggermente in ciascuna versione di Windows. Per i passaggi e le schermate che stiamo utilizzando Windows 10, ma i lettori che eseguono versioni precedenti di Windows, in particolare Windows 7 e Windows 8 / 8.1, dovrebbero essere in grado di seguire i passaggi di base a fronte di lievi differenze nell'interfaccia utente di Windows.
È anche importante notare prima di procedere che la modifica dell'affinità del processore per un particolare processo o app può causare problemi di stabilità e probabilmente peggiorerà le prestazioni delle moderne app e giochi multi-thread. Pertanto, assicurati di sperimentare prima app e dati non cruciali e assicurati di salvare qualsiasi lavoro aperto o progressi del gioco prima di modificare qualsiasi impostazione discussa qui, poiché sono possibili arresti anomali dell'applicazione o del sistema.

Perché limitare l'accesso di un'app ai core della CPU?

Come accennato in precedenza, la maggior parte degli utenti vorrà che Windows gestisca automaticamente la potenza di elaborazione del PC, assicurandosi che le app in grado di utilizzare tutti i core abbiano accesso ad essi. Ciò si traduce generalmente in prestazioni migliori, quindi la domanda principale è perché un utente vorrebbe mai limitare o limitare una determinata app multi-thread a un numero inferiore alla quantità totale di core fisici e logici che un PC ha a disposizione.
Esistono due risposte di base a questa domanda: 1) per garantire la compatibilità e le prestazioni con un software precedente, e 2) per eseguire un maiale del processore altrimenti pesantemente thread, riservando comunque risorse sufficienti per eseguire contemporaneamente altre attività.
Inizieremo con la prima risposta: compatibilità e prestazioni. Alcune app e giochi per Windows sono stati codificati molto prima che i processori multi-thread e multi-core di livello consumer diventassero realtà. I creatori di giochi più vecchi, in particolare, potrebbero non aver mai immaginato che qualcuno giocando avrebbe avuto qualcosa di più di un PC Windows alimentato da un singolo core della CPU ad alta frequenza. Quando il software di questa era incontra moderne CPU che imballano quattro, sei, otto o anche più core, a volte può causare problemi di prestazioni o addirittura l'impossibilità di avviare il programma.
Molte app e giochi funzionano ancora bene, ovviamente, anche se alimentati dalle più recenti CPU desktop monster a 8 core / 16 thread. Ma se stai provando a giocare a un gioco più vecchio e stai riscontrando problemi, usare l'affinità del processore per limitare manualmente il processo del gioco a uno solo dei tuoi core potrebbe essere un buon passo per la risoluzione dei problemi.
La seconda risposta è probabilmente più utile per più utenti Windows e costituirà la base delle nostre istruzioni dettagliate di seguito. Mentre molte app di Windows, in particolare i giochi, non possono ancora sfruttare più di uno o due core, le app di creazione di contenuti come codificatori video e strumenti di rendering 3D sono state ottimizzate negli ultimi anni per essere in grado di utilizzare ogni grammo di potenza di elaborazione che il tuo PC può lanciarli. In genere vuoi che queste app vadano il più velocemente possibile, ma a volte la velocità o il tempo di completamento non sono il fattore principale e preferiresti mantenere una parte della potenza di elaborazione del tuo PC disponibile per un'altra attività mentre la tua app multimediale in esecuzione viene eseguita nel sfondo. È qui che l'affinità del processore è davvero utile.

Passo dopo passo: il nostro esempio

Un'app che può divorare tutti i core della CPU che lanci è un codificatore video x264 come RipBot264 (o HandBrake, o una qualsiasi miriade di strumenti codificatore x264 e x265 disponibili). Per il nostro esempio, vogliamo che RipBot264 codifichi un file video, ma vogliamo anche lavorare su altri progetti in app come Photoshop e Premiere contemporaneamente.

Per impostazione predefinita, un'app come RipBot264 utilizzerà tutta la potenza di elaborazione disponibile.

Se avessimo avviato la nostra codifica RipBot264 e avessimo lanciato Photoshop e Premiere, Windows farebbe del suo meglio per stabilire le priorità e soddisfare le esigenze di ogni app, ma occasionalmente Windows commetterà un errore, causando rallentamenti o blocchi temporanei delle nostre app attive. Possiamo provare a evitarlo usando l'affinità del processore per limitare l'uso dei nostri core CPU da parte di RipBot264.
Per iniziare, assicurati innanzitutto di aver effettuato l'accesso a un account utente di Windows con privilegi di amministratore. Quindi vai avanti e avvia l'app che desideri limitare. Nel nostro caso, è RipBot264.
Successivamente, avvia Task Manager di Windows, facendo clic con il tasto destro sulla barra delle applicazioni e selezionando Task Manager o usando la combinazione di tasti di scelta rapida Ctrl-Maiusc-Esc . Per impostazione predefinita, Task Manager nelle ultime versioni di Windows si avvia in una vista "di base". Se il tuo Task Manager non assomiglia a quello nei nostri screenshot, fai clic su Altri dettagli per visualizzare l'interfaccia completa. Una volta fatto, assicurati di essere nella scheda "Processi" e ora trova l'app o il processo.
Quest'ultimo passaggio è potenzialmente più facile a dirsi che a farsi. In molti casi, troverai semplicemente l'app desiderata nell'elenco. In altri casi, alcune app potrebbero utilizzare processi univoci a parte il processo dell'applicazione principale per determinate attività. La chiave è trovare il processo oi processi responsabili dell'utilizzo della CPU che si desidera limitare. Un buon modo per testarlo è quello di avviare l'attività impegnativa (nel nostro caso, iniziare a codificare un file video), quindi ordinare Task Manager dalla colonna CPU per trovare i processi che utilizzano i più alti livelli di risorse della CPU. Se il nome del processo (di nuovo, nel nostro caso è un processo codificatore H.264) corrisponde alla tua app di destinazione, sei pronto.
Con il processo corretto identificato, fai clic destro su di esso e seleziona Vai a dettagli . Questo ti porterà alla scheda Dettagli di Task Manager ed evidenzia automaticamente il processo corretto.


Ora, fai di nuovo clic con il pulsante destro del mouse sul processo e seleziona Imposta affinità .

Verrà visualizzata una nuova finestra denominata "Affinità processore" piena di caselle di controllo e un elenco numerato di CPU, il cui numero si basa sul numero totale di core fisici e logici contenuti nella CPU specifica. Il nostro sistema di esempio esegue un Intel Core i7-5960X, che ha otto core hyperthreaded. Abbiamo quindi un totale di 16 CPU elencate nella nostra finestra di affinità del processore.


Successivamente, è il momento di decidere quanto vuoi limitare la tua app. Fare clic sulla casella di controllo accanto a Tutti i processori per deselezionare tutte le caselle CPU e quindi selezionare almeno una casella CPU da controllare, ognuna delle quali rappresenta un nucleo fisico o logico. In assenza di difetti della CPU o scenari di overclocking unici, in genere non importa quali core si selezionano.


Nel nostro esempio, vogliamo limitare RipBot264 a quattro core, lasciando molto spazio per le altre attività più sensibili al tempo. Dopo aver selezionato il numero desiderato di core, premere OK per chiudere la finestra Affinità processore. Le tue modifiche avranno effetto immediato e se l'app era già impegnata in un'attività pesante per la CPU, vedrai precipitare l'utilizzo del processore su tutti tranne i core selezionati.

Dopo aver configurato RipBot264 per utilizzare solo 4 dei nostri 16 core, l'utilizzo della CPU diminuisce immediatamente sui core rimanenti.

Con questa configurazione, possiamo consentire a RipBot264 di codificare il più velocemente possibile su quei quattro core, ma i restanti dodici core nel nostro sistema sono liberi di gestire altre app. Se in seguito terminiamo le nostre altre attività e vogliamo ripristinare le prestazioni complete su RipBot264, possiamo semplicemente ripetere i passaggi precedenti per tornare alla finestra Affinità processore e quindi selezionare la casella Tutti i processori per concedere nuovamente all'app l'accesso a tutte le nostre CPU nuclei.

Avvertenze

Oltre ai problemi di stabilità menzionati in precedenza, c'è un altro grande avvertimento che devi considerare. Tutte le modifiche apportate all'affinità del processore vengono ripristinate ogni volta che il processo viene riavviato. Ciò significa che, come minimo, dovrai ripetere questi passaggi ogni volta che riavvii il PC. Alcuni processi sono ancora più problematici, poiché si ricaricano automaticamente in base alle istruzioni dell'app. Nella nostra configurazione RipBot264, ad esempio, il processo di codifica H.264 che abbiamo modificato inizia ogni volta che l'app passa alla codifica di un nuovo file video.
Potresti essere in grado di aggirare questa limitazione creando script personalizzati che impostano l'affinità del processore della tua app tramite un file batch o un collegamento basato sulla riga di comando, ma alcune app potrebbero utilizzare processi unici o casuali che rendono tali sforzi difficili o impossibili. Pertanto, è meglio sperimentare individualmente con ciascuna app che si desidera limitare per trovare il modo migliore per configurare manualmente l'affinità del processore.

Come limitare le app a core CPU specifici con affinità del processore