Anonim

A maioria dos PCs com Windows agora é alimentada por processadores com vários núcleos, e as versões recentes do Windows geralmente fazem um ótimo trabalho de dividir automaticamente o poder total de processamento do seu PC para acomodar melhor seus aplicativos e jogos em execução. Mas, às vezes, o usuário e o Windows podem ter idéias diferentes quando se trata de tomar a melhor forma de usar a energia da CPU de um PC, e é aí que os usuários avançados podem intervir e restringir manualmente certos aplicativos ou processos a núcleos específicos da CPU, graças a um recurso chamado Afinidade do processador . Veja como fazê-lo.
Quando se trata de versões do Windows no nível do consumidor, a capacidade de um usuário configurar manualmente o uso de núcleos de CPU específicos de um aplicativo remonta ao período de tempo do Windows XP / 2000, embora as etapas sejam ligeiramente diferentes em cada versão do Windows. Para as etapas e capturas de tela, estamos usando o Windows 10, mas os leitores que executam versões mais antigas do Windows, principalmente o Windows 7 e o Windows 8 / 8.1, devem seguir as etapas básicas em face de pequenas diferenças na interface do usuário do Windows.
Também é importante observar antes de prosseguirmos que modificar a afinidade do processador para um processo ou aplicativo específico pode causar problemas de estabilidade e provavelmente prejudicará o desempenho dos aplicativos e jogos multithread modernos. Portanto, experimente primeiro aplicativos e dados não cruciais e salve qualquer progresso aberto de trabalho ou jogo antes de modificar as configurações discutidas aqui, pois são possíveis falhas no aplicativo ou no sistema.

Por que limitar o acesso de um aplicativo aos núcleos da CPU?

Como mencionado acima, a maioria dos usuários deseja que o Windows lide automaticamente com o poder de processamento do PC, garantindo que os aplicativos que podem utilizar todos os núcleos tenham acesso a eles. Isso geralmente resulta em melhor desempenho; portanto, a questão principal é por que um usuário deseja limitar ou restringir um determinado aplicativo multiencadeado a menos do que a quantidade total de núcleos físicos e lógicos que um PC tem disponível.
Há duas respostas básicas para essa pergunta: 1) para garantir compatibilidade e desempenho com software mais antigo e 2) para executar um porco-do-processador com processos altamente pesados ​​enquanto ainda reserva recursos suficientes para executar simultaneamente outras tarefas.
Começaremos com a primeira resposta: compatibilidade e desempenho. Alguns aplicativos e jogos do Windows foram codificados muito antes dos processadores multi-thread e multi-core no nível do consumidor serem realidade. Os criadores de jogos antigos, em particular, nunca imaginaram que alguém que jogasse o jogo teria algo mais do que um PC com Windows alimentado por um único núcleo de CPU de alta frequência. Quando o software desta época encontra CPUs modernas com quatro, seis, oito ou mais núcleos, às vezes pode resultar em problemas de desempenho ou até na incapacidade de iniciar o programa.
Muitos aplicativos e jogos ainda funcionam muito bem, é claro, mesmo quando equipados com as mais recentes CPUs de desktop monstro de 8 núcleos / 16 threads. Mas se você está tentando jogar um jogo mais antigo e está tendo problemas, usar a afinidade do processador para restringir manualmente o processo do jogo a apenas um de seus muitos núcleos pode ser uma boa etapa de solução de problemas.
A segunda resposta é provavelmente mais útil para mais usuários do Windows e formará a base de nossas instruções passo a passo abaixo. Embora muitos aplicativos do Windows, principalmente jogos, ainda não possam tirar vantagem de mais de um ou dois núcleos, os aplicativos de criação de conteúdo, como codificadores de vídeo e ferramentas de renderização em 3D, foram otimizados nos últimos anos para poder usar todo o poder de processamento que seu PC pode jogar neles. Você geralmente deseja que esses aplicativos sejam o mais rápido possível, mas às vezes a velocidade ou o tempo de conclusão não são o fator principal, e você prefere manter uma parte do poder de processamento do seu PC disponível para outra tarefa enquanto seu exigente aplicativo de mídia é executado no fundo. É aqui que a afinidade do processador é realmente útil.

Passo a Passo: Nosso Exemplo

Um aplicativo que pode consumir todos os núcleos da CPU que você utiliza é um codificador de vídeo x264 como o RipBot264 (ou HandBrake, ou qualquer uma das inúmeras ferramentas disponíveis para os codificadores x264 e x265). No nosso exemplo, queremos que o RipBot264 codifique um arquivo de vídeo, mas também queremos trabalhar em outros projetos em aplicativos como o Photoshop e o Premiere ao mesmo tempo.

Por padrão, um aplicativo como o RipBot264 usará todo o poder de processamento disponível.

Se iniciamos nossa codificação RipBot264 e lançamos o Photoshop e o Premiere, o Windows faria o possível para priorizar e acomodar as necessidades de cada aplicativo, mas o Windows também cometerá um erro ocasionalmente, resultando em lentidão ou congelamento temporário em nossos aplicativos ativos. Podemos tentar evitar isso usando a afinidade do processador para limitar o uso do RipBot264 de nossos núcleos de CPU.
Para começar, verifique se você está conectado a uma conta de usuário do Windows com privilégios de administrador. Então vá em frente e inicie o aplicativo que você deseja restringir. No nosso caso, é o RipBot264.
Em seguida, inicie o Windows Task Manager, clicando com o botão direito do mouse na barra de tarefas e selecionando Task Manager ou usando a combinação de atalhos do teclado Ctrl-Shift-Escape . Por padrão, o Gerenciador de Tarefas nas versões recentes do Windows inicia em uma exibição "básica". Se o seu Gerenciador de tarefas não se parecer com o de nossas capturas de tela, clique em Mais detalhes para exibir a interface completa. Feito isso, verifique se você está na guia "Processos" e agora encontre seu aplicativo ou processo.
Este último passo é potencialmente mais fácil de dizer do que fazer. Em muitos casos, você simplesmente encontrará o aplicativo desejado na lista. Em outros casos, alguns aplicativos podem usar processos exclusivos, além do processo principal do aplicativo, para determinadas tarefas. A chave é encontrar o processo ou processos responsáveis ​​pelo uso da CPU que você deseja limitar. Uma boa maneira de testar isso é iniciar a atividade exigente (no nosso caso, começar a codificar um arquivo de vídeo) e, em seguida, classificar o Gerenciador de Tarefas pela coluna CPU para encontrar os processos que estão usando os níveis mais altos de recursos da CPU. Se o nome do processo (novamente, no nosso caso, é um processo do codificador H.264) corresponder ao seu aplicativo de destino, você estará pronto.
Com o processo correto identificado, clique com o botão direito do mouse e selecione Ir para detalhes . Isso irá direcioná-lo para a guia Detalhes do Gerenciador de tarefas e destacar automaticamente o processo correto.


Agora, clique com o botão direito do mouse novamente no processo e selecione Definir afinidade .

Uma nova janela denominada “Afinidade do processador” aparecerá preenchida com caixas de seleção e uma lista numerada de CPUs, cujo número se baseia no número total de núcleos físicos e lógicos compactados em sua CPU específica. Nosso sistema de exemplo está executando um Intel Core i7-5960X, que possui oito núcleos com hyperthread. Portanto, temos um total de 16 CPUs listadas em nossa janela de afinidade do processador.


Em seguida, é hora de decidir quanto você deseja restringir seu aplicativo. Clique na caixa de seleção ao lado de Todos os processadores para desmarcar todas as caixas de CPU e, em seguida, escolha pelo menos uma caixa de CPU para marcar, com cada uma representando um núcleo físico ou lógico. Na ausência de defeitos de CPU ou cenários exclusivos de overclock, geralmente não importa quais núcleos você seleciona.


Em nosso exemplo, queremos limitar o RipBot264 a quatro núcleos, deixando muito espaço para as outras tarefas mais sensíveis ao tempo. Depois de selecionar o número desejado de núcleos, pressione OK para fechar a janela Afinidade do processador. Suas alterações entrarão em vigor imediatamente e se o aplicativo já estiver envolvido em uma tarefa pesada da CPU, você verá o uso do processador despencar em todos os núcleos que você selecionou, exceto os núcleos que você selecionou.

Depois que configuramos o RipBot264 para usar apenas 4 de nossos 16 núcleos, o uso da CPU cai imediatamente nos núcleos restantes.

Com essa configuração, podemos permitir que o RipBot264 codifique o mais rápido possível nesses quatro núcleos, mas os doze núcleos restantes em nosso sistema são livres para lidar com outros aplicativos. Se posteriormente terminarmos nosso outro trabalho e desejar restaurar o desempenho total para o RipBot264, podemos simplesmente repetir as etapas acima para voltar à janela Afinidade do Processador e marque a caixa Todos os Processadores para conceder mais uma vez ao aplicativo acesso a todas as CPUs. núcleos.

Ressalvas

Além dos problemas de estabilidade mencionados anteriormente, há uma outra grande ressalva que você precisará considerar. Todas as alterações feitas na afinidade do processador são redefinidas sempre que esse processo é reiniciado. Isso significa que, no mínimo, você precisará repetir essas etapas sempre que reiniciar o seu PC. No entanto, alguns processos são ainda mais problemáticos, pois são recarregados automaticamente, dependendo das instruções do aplicativo. Em nossa configuração do RipBot264, por exemplo, o processo do codificador H.264 que modificamos é iniciado sempre que o aplicativo passa a codificar um novo arquivo de vídeo.
Você pode contornar essa limitação criando scripts personalizados que definem a afinidade do processador do aplicativo por meio de um arquivo em lotes ou atalho baseado em linha de comando, mas alguns aplicativos podem usar processos exclusivos ou aleatórios que dificultam ou impossibilitam esses esforços. Portanto, é melhor experimentar individualmente cada aplicativo que você deseja restringir para encontrar a melhor maneira de configurar manualmente a afinidade do processador.

Como restringir aplicativos a núcleos de CPU específicos com afinidade de processador