Anonim

De fleste Windows-PCer drives nå av flerkjerneprosessorer, og nyere versjoner av Windows gjør vanligvis en veldig god jobb med å automatisk dele opp PC-ens totale prosessorkraft for å imøtekomme best mulig løpende apper og spill. Men noen ganger kan brukeren og Windows ha forskjellige ideer når det gjelder å ta beslutninger om hvordan de skal bruke en PCs CPU-kraft best, og det er der avanserte brukere kan trå til og manuelt begrense bestemte apper eller prosesser til spesifikke CPU-kjerner, takket være en funksjon kalt prosessoraffinitet . Slik gjør du det.
Når det gjelder versjoner av Windows på forbrukernivå, er muligheten for en bruker å konfigurere en apps bruk av spesifikke CPU-kjerner manuelt tilbake til Windows XP / 2000-tidsrammen, selv om trinnene avviker litt i hver versjon av Windows. For trinnene og skjermbildene bruker vi Windows 10, men lesere som kjører eldre versjoner av Windows, spesielt Windows 7 og Windows 8 / 8.1, bør kunne følge de grunnleggende trinnene i lys av små forskjeller i Windows UI.
Det er også viktig å merke seg før vi fortsetter med at å endre prosessoraffinitet for en bestemt prosess eller app kan forårsake stabilitetsproblemer, og det vil sannsynligvis forringe ytelsen til moderne multetrådede apper og spill. Forsikre deg derfor om at du eksperimenterer med ikke-avgjørende apper og data først, og sørg for å lagre all fremgang av arbeid eller spill før du endrer innstillinger som er diskutert her, ettersom program- eller systemkrasj er mulig.

Hvorfor begrense en apps tilgang til CPU-kjerner?

Som nevnt over, vil de fleste brukere at Windows automatisk skal håndtere PC-ens prosessorkraft, og sørge for at apper som kan bruke alle kjerner, får tilgang til dem. Dette resulterer generelt i bedre ytelse, så det primære spørsmålet er hvorfor en bruker noen gang vil ønske å begrense eller begrense en bestemt flertrådd app til mindre enn den totale mengden fysiske og logiske kjerner som en PC har tilgjengelig.
Det er to grunnleggende svar på dette spørsmålet: 1) for å sikre kompatibilitet og ytelse med eldre programvare, og 2) for å kjøre en ellers sterkt gjenget prosessorhog mens du fortsatt reserverer nok ressurser til samtidig å utføre andre oppgaver.
Vi starter med det første svaret: kompatibilitet og ytelse. Noen Windows-apper og -spill ble kodet lenge før flertrådede prosessorer og flerkjerneprosessorer på forbrukernivå var en realitet. Spesielt skaperne av eldre spill har aldri sett for seg at noen som spiller spillet ville ha noe mer enn en Windows-PC drevet av en enkelt høyfrekvent CPU-kjerne. Når programvare fra denne epoken møter moderne CPUer som pakker fire, seks, åtte eller enda flere kjerner, kan det noen ganger føre til ytelsesproblemer, eller til og med manglende evne til å starte programmet i det hele tatt.
Mange apper og spill fungerer selvfølgelig like bra selv når de drives av de siste 8-kjerners / 16-tråds monster-desktop-CPUene. Men hvis du prøver å spille et eldre spill og har problemer, kan det være et godt feilsøkingstrinn å prøve å bruke prosessoraffinitet for å manuelt begrense spillets prosess til bare en av de mange kjernene.
Det andre svaret er sannsynligvis mer nyttig for flere Windows-brukere, og det vil danne grunnlaget for trinnvise instruksjoner nedenfor. Mens mange Windows-apper, spesielt spill, fremdeles ikke kan dra nytte av mer enn en eller to kjerner, har apper for innholdsoppretting som videokodere og 3D-gjengivelsesverktøy blitt optimalisert de siste årene for å kunne bruke hver unse prosessorkraft som PC-en din kan kaste dem. Du vil generelt at disse appene skal gå så raskt som mulig, men noen ganger er ikke hastighet eller fullføringstid den viktigste faktoren, og du vil heller holde en del av PC-ens prosessorkraft tilgjengelig for en annen oppgave mens din krevende medie-app kjører i bakgrunn. Det er her prosessoraffinitet virkelig kommer godt med.

Trinn for trinn: vårt eksempel

En app som kan spise opp alle CPU-kjernene du kaster på den, er en x264-videokoder som RipBot264 (eller HandBrake, eller noen av de myriade av x264- og x265-kodingsverktøyene som er tilgjengelige). For eksempel, ønsker vi at RipBot264 skal kode en videofil, men vi vil også jobbe med andre prosjekter i apper som Photoshop og Premiere samtidig.

Som standard vil en app som RipBot264 bruke all tilgjengelig kraft.

Hvis vi startet RipBot264-koden og deretter lanserte Photoshop og Premiere, ville Windows gjøre sitt beste for å prioritere og imøtekomme hver apps behov, men Windows vil også av og til gjøre en feil, noe som resulterer i nedgang eller midlertidig frysing i våre aktive apper. Vi kan prøve å unngå dette ved å bruke prosessoraffinitet for å begrense RipBot264s bruk av CPU-kjernene våre.
For å komme i gang, må du først sørge for at du er logget inn på en Windows-brukerkonto med administratorrettigheter. Gå deretter videre og start appen du ønsker å begrense. I vårt tilfelle er det RipBot264.
Deretter starter du Windows Task Manager, enten ved å høyreklikke på oppgavelinjen og velge Oppgavebehandling eller ved å bruke hurtigtastkombinasjonen Ctrl-Shift-Escape . Som standard starter Oppgavebehandling i nyere versjoner av Windows i en "grunnleggende" visning. Hvis oppgavebehandleren din ikke ser ut som den i skjermbildene våre, klikker du på Flere detaljer for å avsløre hele grensesnittet. Når det er gjort, må du passe på "Prosesser" -fanen og nå finne appen eller prosessen din.
Dette siste trinnet er potensielt lettere sagt enn gjort. I mange tilfeller finner du ganske enkelt ønsket app på listen. I andre tilfeller kan noen apper bruke unike prosesser bortsett fra den primære applikasjonsprosessen for visse oppgaver. Nøkkelen er å finne prosessen eller prosessene som er ansvarlige for CPU-bruken du ønsker å begrense. En god måte å teste dette på er å fyre opp den krevende aktiviteten (i vårt tilfelle begynne å kode en videofil), og deretter sortere Task Manager etter CPU-kolonnen for å finne prosessene som bruker de høyeste nivåene av CPU-ressurser. Hvis prosessnavnet (igjen, i vårt tilfelle det er en H.264-kodeprosess) samsvarer med målappen din, er du klar.
Med riktig prosess identifisert, høyreklikker du på den og velger Gå til detaljer . Dette vil hoppe deg til kategorien Detaljer i Oppgavebehandling og automatisk utheve riktig prosess.


Nå, høyreklikk igjen på prosessen og velg Angi tilknytning .

Et nytt vindu merket "Prosessoraffinitet" vil vises fylt med avmerkingsbokser og en nummerert liste over CPUer, hvis antall er basert på det totale antallet fysiske og logiske kjerner som er pakket i din spesifikke CPU. Vårt eksempelsystem kjører en Intel Core i7-5960X, som har åtte hypertrådede kjerner. Vi har derfor totalt 16 CPUer oppført i prosessoraffinitetsvinduet.


Neste, er det på tide å bestemme hvor mye du vil begrense appen din. Klikk i avkrysningsruten ved siden av Alle prosessorer for å fjerne merket av alle CPU-bokser, og velg deretter minst en CPU-boks du vil merke av, med hver av dem som representerer en fysisk eller logisk kjerne. Fraværende CPU-feil eller unike overklokkingsscenarier, det spiller vanligvis ingen rolle hvilke kjerner du velger.


I vårt eksempel ønsker vi å begrense RipBot264 til fire kjerner, og gi god plass til våre andre mer tidssensitive oppgaver. Når du har valgt ønsket antall kjerner, trykker du på OK for å lukke prosessoraffinitetsvinduet. Endringene dine trer i kraft øyeblikkelig, og hvis appen allerede var involvert i en CPU-tung oppgave, vil du se prosessorbruken avta på alle bortsett fra kjernene du valgte.

Når vi konfigurerer RipBot264 til å bruke bare 4 av våre 16 kjerner, faller CPU-bruken umiddelbart på de gjenværende kjernene.

Med dette oppsettet kan vi la RipBot264 kode så raskt som mulig på de fire kjernene, men de resterende tolv kjernene i systemet vårt er gratis å håndtere andre apper. Hvis vi senere avslutter vårt andre arbeid og ønsker å gjenopprette full ytelse til RipBot264, kan vi ganske enkelt gjenta trinnene ovenfor for å gå tilbake til vinduet Prosessoraffinitet og deretter merke av i Alle prosessorer- boksen for å gi appen tilgang til alle CPU-ene våre igjen kjerner.

Advarsler

I tillegg til stabilitetsproblemene som er nevnt tidligere, er det en annen stor advarsel du må vurdere. Eventuelle endringer du gjør i prosessoraffinitet tilbakestilles når prosessen startes på nytt. Dette betyr at du som minimum må gjenta disse trinnene hver gang du starter PCen på nytt. Noen prosesser er imidlertid enda mer plagsomme ettersom de lastes inn automatisk, avhengig av appens instruksjoner. I vårt RipBot264-oppsett starter for eksempel H.264-kodeprosessen vi endret over hver gang appen går videre til koding av en ny videofil.
Du kan være i stand til å omgå denne begrensningen ved å lage egendefinerte skript som angir appens prosessoraffinitet via en kommandolinjebasert batchfil eller snarvei, men noen apper kan bruke unike eller tilfeldige prosesser som gjør en slik innsats vanskelig eller umulig. Det er derfor best å eksperimentere individuelt med hver app du ønsker å begrense for å finne den beste måten å manuelt konfigurere prosessoraffinitet.

Slik begrenser du apper til spesifikke CPU-kjerner med prosessoraffinitet