quinta-feira, 23 de dezembro de 2010

Comando Start? Nos vários Windows…

Com o surgimento dos múltiplos processadores no Windows começamos a ter alguns problemas por vezes com aquelas aplicações que não sabem bem como lidar com a fartura e que se tornam gananciosas roubando todos os ciclos de processamento possíveis em todos os processadores.
Por incrível que pareça esta situação pode ser facilmente controlada reservando os recursos necessários ao nosso sistema.
Imaginemos que queremos correr um notepad apenas a ocupar recursos de um processador em vez de todos...
Para isto apenas necessitamos de abrir uma janela cmd e escrever o seguinte comando:
start /affinity 1 notepad.exe
Este comando dá indicações para inicializar o processo notepad a ocupar o CPU com o ID 0.
Se testares e depois abrirem o taskmanager e observarem qual a afinidade de processadores verificarão que apenas a CPU 0 está a processar o processo.
Sabendo isto podemos usar esta vantagem das mais diversas formas, como por exemplo criar um atalho que arranca a aplicação com estes parâmetros, um ficheiro batch etc. A imaginação é o nosso céu :)
Aqui fica um conjunto de possibilidades do comando start que passa à maioria despercebido mas que é muito importante.

START

Starts a separate window to run a specified program or command.

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/AFFINITY <hex affinity>] [/WAIT] [/B] [command/program]
      [parameters]

    "title"     Titulo a colocar na barra de Windows.
    path       Directoria de inicio.
    B Iniciar a aplicação sem criar uma nova janela
    I O novo ambiente será o ambiente original passado para o cmd.exe e não o ambiente que está a correr no momento.
    MIN Iniciar a janela minimizado.
    MAX Iniciar a janela maximizado.
    SEPARATE Iniciar o programa de 16-bit numa zona de memória separada.
    SHARED Iniciar um programa de 16-bit numa zona de moeria comum.
    LOW Iniciar a aplicação numa forma de "IDLE priority class".
    NORMAL Iniciar a aplicação com prioridade normal.
    HIGH Iniciar a aplicação com prioridade Alta.
    REALTIME Iniciar a aplicação com prioridade em tempo real.
    ABOVENORMAL Iniciar a aplicação com prioridade acima do normal.
    BELOWNORMAL Iniciar a aplicação com prioridade a baixo normal.
    AFFINITY A nova aplicação terá a afinidade para o processador especificado deve ser expressa como um numero decimal.
    WAIT Iniciar uma aplicação e esperar que ela termine.

Sem comentários:

Enviar um comentário