segunda-feira, 10 de novembro de 2014

Executar programa em alta prioridade e em afinidade definida

    Executar um programa em alta prioridade pode em alguns casos dar um bom aumento no desempenho. Um programa em alta prioridade, nada mais e nada menos que um processo com "direito" a uma maior utilização da CPU quanto a outros processos.
   Afinidade de um processo é o controle de qual núcleo deve executar ele. Por exemplo, você tem um quad-core, e está usando um aplicativo que utiliza apenas um núcleo, você pode defini-lo para usar um núcleo que não está com carga, o 4º por exemplo, aliviando assim os primeiros. 
   Para definir a prioridade e a afinidade, é muito simples. Basta abrir o gerenciador de tarefas, e na aba processos clicar com o botão direito e ali controlar, porém isso não fica salvo, sempre que executar o programa deverá fazer. Vou ensinar aqui como fazer para o aplicativo iniciar já em alta prioridade e afinidades definidas utilizando um arquivo .BAT.
   Abra o bloco de notas e digite:

start "nome qualquer" /high /affinity "número_hexadecimal" "Caminho do executável"

   O comando "/high" define a prioridade da CPU para Alto, óbvio. Já o comando affinity definirá a partir de um número hexadecimal qual serão os núcleos usados. Para descobrir tal número precisaremos converter um código binário em hexadecimal. E para descobrir o binário é simples, para cada núcleo usaremos um dígito, 1 para os núcleos ativos e 0 para o restante, veja a tabela:


   Para exemplificar, usarei como exemplo o six-core. Desejo usar a CPU-0, CPU-2 e CPU-4, então o binário para isso é 010101. Com esse número precisaremos converter para hexadecimal e para fazer isso usaremos o site Binary to Decimal to Hexadecimal Converter.


   Com o número hexadecimal em mãos o bat ficaria assim:

start "Programa" /high /affinity 15 "C:/programa.exe"

   Salve o arquivo com a extensão .bat. Pronto, basta executá-lo. Mas atenção: 
NÃO SE ESQUEÇA DAS ASPAS (caso tenha esquecido e abrir inúmeros CMDs na tela, segure a tecla do Pause Break).
   O único inconveniente é que sempre que for abrir a tela do CMD irá "piscar" na tela. Para contornar isso crie um atalho para esse arquivo bat, e nas propriedades dele vá para a aba "Layout", defina tamanhos de janela e buffer em 1, e posição em -4 (pode ser qualquer valor negativo, isso tirará o cmd da tela), deixe o box "deixar o sistema posicionar a janela" desmarcado.







Nenhum comentário:

Postar um comentário