Processador de comandos do Win7 (CMD.EXE) realmente lento

6

Parece a mais alguém que o processador de comandos do Windows 7 (CMD.EXE) está realmente lento?

Eu executei este teste a partir de uma linha de comando (o ntimer é um utilitário de temporização do kit de recursos do servidor Windows e você pode simplesmente excluí-lo se você não o tiver instalado):

ntimer cmd / c para / l% a em (1,1,100) do @cmd / c rem

Tudo o que ele faz é enviar um novo CMD.EXE 100 vezes. No meu sistema base Win7 x64 que leva cerca de 2,3 segundos para ser executado. Executar isso em uma máquina virtual Win7 x86 leva cerca de 5,6 segundos. Curiosamente, na VM usando o velho processador de comando de 16 bits, o COMMAND.COM, o mesmo teste leva menos de 1 segundo.

Por que tão lento para CMD.EXE? Eu esperava um desempenho semelhante ao que vi com Command.com na VM. A proporção de velocidades para o CMD.EXE entre a máquina bruta e a VM parece razoável, mas a velocidade absoluta é muito lenta. Alguém tem alguma opinião sobre isso? Obrigado!

Eu percebi isso porque estava fazendo uma compilação de software e o tempo de execução passou de 15 minutos na minha VM XP antiga para 30 minutos na minha nova VM Win7. O processo de compilação usa o utilitário GNUMAKE e faz LOTS de descartar o processador de comandos.

P.S. Eu perguntei isso originalmente no stackoverflow.com, mas eles sugeriram que eu fosse aqui.

    
por Scott Bussinger 16.06.2009 / 00:07

3 respostas

1

em vez de usar o cmd.com, você já tentou o PowerShell? Eu acredito que está sob acessórios.

    
por 16.06.2009 / 16:53
1

Parece haver um problema com os layouts de teclado instalados e o cmd.exe (pelo menos, isso vale para a minha máquina do Vista e alguns de meus colegas).

Tente remover quaisquer idiomas adicionais de "Configurações do sistema - > Opções de região e idioma - > Teclados & idiomas - > Alterar teclados - > Serviços instalados" (traduzido na mosca - YMMV).

Isso reduziu a inicialização cmd.exe para mim de "muito chato" para "instantâneo".

    
por 09.12.2010 / 19:05
0

Eu sugiro usar o Sysinternals Process Explorer e o Process Monitor para ter uma ideia do que está acontecendo enquanto ele trava. Há muitos ótimos tutoriais para os dois programas e eu recomendo que você se familiarize com eles.

    
por 06.01.2010 / 15:50