De flesta Windows-datorer drivs nu av flerkärniga processorer, och de senaste versionerna av Windows gör i allmänhet ett mycket bra jobb med att automatiskt dela upp din PC: s totala processorkraft för att bäst passa dina löpande appar och spel. Men ibland kan användaren och Windows ha olika idéer när det gäller att fatta beslut om hur man använder en PC: s CPU-kraft bäst, och det är där avancerade användare kan kliva in och manuellt begränsa vissa appar eller processer till specifika CPU-kärnor, tack vare en funktion kallas Processor Affinity . Så här gör du.
När det gäller versioner av konsumentnivåer av Windows, kan användaren manuellt konfigurera en apps användning av specifika CPU-kärnor tillbaka till Windows XP / 2000-tidsramen, även om stegen skiljer sig något i varje version av Windows. För stegen och skärmdumparna använder vi Windows 10, men läsare som kör äldre versioner av Windows, särskilt Windows 7 och Windows 8 / 8.1, bör kunna följa de grundläggande stegen inför små skillnader i Windows UI.
Det är också viktigt att notera innan vi fortsätter att ändra processoraffinitet för en viss process eller app kan orsaka stabilitetsproblem, och det kommer sannolikt att försämra prestandan för moderna flertrådiga appar och spel. Se därför till att du experimenterar med icke-avgörande appar och data först och se till att spara alla öppna arbeten eller spelframsteg innan du ändrar inställningar som diskuteras här, eftersom program- eller systemkrasch är möjliga.
Varför begränsa en apps åtkomst till CPU-kärnor?
Som nämnts ovan, de flesta användare vill att Windows automatiskt ska hantera datorns processorkraft och se till att appar som kan använda alla kärnor får åtkomst till dem. Detta resulterar i allmänhet i bättre prestanda, så den primära frågan är varför en användare någonsin vill begränsa eller begränsa en viss multigängad app till mindre än den totala mängden fysiska och logiska kärnor som en dator har tillgängliga.
Det finns två grundläggande svar på den här frågan: 1) för att säkerställa kompatibilitet och prestanda med äldre programvara, och 2) att köra ett annars kraftigt gängat processorhår medan du fortfarande reserverar tillräckligt med resurser för att samtidigt utföra andra uppgifter.
Vi börjar med det första svaret: kompatibilitet och prestanda. Vissa Windows-appar och -spel kodades långt innan processorer på flera nivåer med flera trådar och flera kärnor var en verklighet. Särskilt skaparna av äldre spel har aldrig föreställt sig att någon som spelar spelet skulle ha något mer än en Windows-dator som drivs av en enda högfrekvens CPU-kärna. När programvara från denna tid möter moderna CPU: er som packar fyra, sex, åtta eller till och med fler kärnor kan det ibland resultera i prestandafrågor eller till och med oförmågan att starta programmet alls.
Många appar och spel fungerar fortfarande helt bra, naturligtvis även när de drivs av de senaste 8-kärns / 16-trådsmonterade desktop-CPU: er. Men om du försöker spela ett äldre spel och du har problem, kan du använda processoraffinitet för att manuellt begränsa spelets process till bara en av dina många kärnor vara ett bra felsökningssteg att prova.
Det andra svaret är troligen mer användbart för fler Windows-användare, och det kommer att ligga till grund för våra steg-för-steg-instruktioner nedan. Även om många Windows-appar, särskilt spel, fortfarande inte kan dra nytta av mer än en eller två kärnor, har appar för skapande av innehåll som videokodare och 3D-återgivningsverktyg optimerats under de senaste åren för att kunna använda varje uns processorkraft som din dator kan kasta på dem. Du vill i allmänhet att dessa appar ska gå så snabbt som möjligt, men ibland är hastighet eller färdigställningstid inte den primära faktorn, och du vill hellre hålla en del av din dators processorkraft tillgänglig för en annan uppgift medan din krävande medie-app körs i bakgrund. Det är här processorns affinitet verkligen är praktiskt.
Steg för steg: vårt exempel
En app som kan äta upp alla CPU-kärnor som du kastar på den är en x264-videokodare som RipBot264 (eller HandBrake, eller något av de otaliga verktygen för x264- och x265-kodare). Som exempel vill vi att RipBot264 ska koda en videofil, men vi vill också arbeta med andra projekt i appar som Photoshop och Premiere på samma gång.
Som standard kommer en app som RipBot264 att använda all tillgänglig processorkraft.
Om vi startade vår RipBot264-kod och sedan startade Photoshop och Premiere, skulle Windows göra sitt bästa för att prioritera och tillgodose varje apps behov, men Windows kommer också ibland att göra ett misstag, vilket resulterar i avmattningar eller tillfälliga frysningar i våra aktiva appar. Vi kan försöka undvika detta genom att använda processoraffinitet för att begränsa RipBot264: s användning av våra CPU-kärnor.För att komma igång måste du först se till att du är inloggad på ett Windows-användarkonto med administratörsbehörighet. Gå sedan igång och starta appen du vill begränsa. I vårt fall är det RipBot264.
Starta sedan Windows Task Manager, antingen genom att högerklicka på aktivitetsfältet och välja Task Manager eller genom att använda kortkommandot Ctrl-Shift-Escape . Som standard börjar Task Manager i de senaste versionerna av Windows i en "grundläggande" vy. Om din Task Manager inte ser ut som den i våra skärmdumpar, klicka på Mer information för att avslöja hela gränssnittet. När det är klart, se till att du är på fliken "Processer" och nu hitta din app eller process.
Det sista steget är potentiellt lättare sagt än gjort. I många fall hittar du helt enkelt din önskade app i listan. I andra fall kan vissa appar använda unika processer bortsett från den primära applikationsprocessen för vissa uppgifter. Nyckeln är att hitta processen eller processerna som är ansvariga för den CPU-användning som du vill begränsa. Ett bra sätt att testa detta är att avbryta den krävande aktiviteten (i vårt fall, börja koda en videofil) och sedan sortera Task Manager efter CPU-kolumnen för att hitta de processer som använder de högsta nivåerna av CPU-resurser. Om processnamnet (igen, i vårt fall är det en H.264-kodningsprocess) matchar din målapp, är du redo.
Med rätt process identifierad, högerklicka på den och välj Gå till detaljer . Detta hoppar dig till fliken Detaljer i Aktivitetshanteraren och markerar automatiskt rätt process.
Högerklicka nu igen på processen och välj Ställ in affinitet .
Ett nytt fönster med namnet “Processor Affinity” visas fylld med kryssrutor och en numrerad lista över CPU: er, vars antal är baserad på det totala antalet fysiska och logiska kärnor som är packade i din specifika CPU. Vårt exempelsystem kör en Intel Core i7-5960X, som har åtta hypertrådiga kärnor. Vi har därför totalt 16 processorer listade i vårt Processor Affinity-fönster.
Nästa är det dags att bestämma hur mycket du vill begränsa din app. Klicka på kryssrutan bredvid Alla processorer för att avmarkera alla CPU-rutor och välj sedan minst en CPU-ruta som ska kryssas, var och en representerar en fysisk eller logisk kärna. Avsaknad av CPU-defekter eller unika överklockningsscenarier, det spelar i allmänhet ingen roll vilka kärnor du väljer.
I vårt exempel vill vi begränsa RipBot264 till fyra kärnor, vilket ger gott om utrymme för våra andra mer tidskänsliga uppgifter. När du har valt önskat antal kärnor trycker du på OK för att stänga fönstret Processor Affinity. Dina ändringar träder i kraft omedelbart och om appen redan hade en CPU-tung uppgift ser du dess processoranvändning sjunka på alla utom kärnorna du valde.
När vi konfigurerar RipBot264 för att endast använda 4 av våra 16 kärnor sjunker CPU-användningen omedelbart på de återstående kärnorna.
Med denna inställning kan vi låta RipBot264 koda så snabbt som möjligt på de fyra kärnorna, men de återstående tolv kärnorna i vårt system är fria att hantera andra appar. Om vi senare avslutar vårt andra arbete och vill återställa fullständig prestanda på RipBot264, kan vi helt enkelt upprepa stegen ovan för att gå tillbaka till fönstret Processor Affinity och sedan markera rutan Alla processorer för att återigen ge appen åtkomst till alla våra CPU: er kärnor.förbehåll
Förutom stabilitetsfrågorna som nämnts tidigare, finns det en annan stor varning du måste överväga. Alla ändringar som du gör i processoraffinitet återställs när processen startas om. Det betyder att du, åtminstone, måste upprepa dessa steg varje gång du startar om din dator. Vissa processer är emellertid ännu besvärligare eftersom de laddas automatiskt beroende på appens instruktioner. I vår RipBot264-inställning startar till exempel H.264-kodningsprocessen som vi modifierade varje gång appen går vidare till kodning av en ny videofil.
Du kanske kan hantera denna begränsning genom att skapa anpassade skript som ställer in appens processoraffinitet via en kommandoradsbaserad batchfil eller genväg, men vissa appar kan använda unika eller slumpmässiga processer som gör sådana ansträngningar svåra eller omöjliga. Det är därför bäst att experimentera individuellt med varje app du vill begränsa för att hitta det bästa sättet att manuellt konfigurera processoraffinitet.