6 votes

Le processeur de commande de Win7 (CMD.EXE) est très lent.

Quelqu'un d'autre a-t-il l'impression que le processeur de commande de Windows 7 (CMD.EXE) est vraiment lent à démarrer ?

J'ai effectué ce test à partir d'une ligne de commande (ntimer est un utilitaire de chronométrage du kit de ressources pour serveurs Windows et vous pouvez le laisser de côté si vous ne l'avez pas installé) :

ntimer cmd /c for /l %a in (1,1,100) do @cmd /c rem

Tout ce qu'il fait, c'est éjecter un nouveau CMD.EXE 100 fois. Sur mon système de base Win7 x64, cela prend environ 2,3 secondes pour s'exécuter. Si je l'exécute dans une machine virtuelle Win7 x86, cela prend environ 5,6 secondes. Il est intéressant de noter que dans la machine virtuelle utilisant l'ancien processeur de commande 16 bits COMMAND.COM, le même test prend moins d'une seconde.

Pourquoi CMD.EXE est-il si lent ? Je m'attendais à des performances similaires à celles que j'ai observées avec COMMAND.COM dans la VM. Le rapport des vitesses pour CMD.EXE entre la machine brute et la VM semble raisonnable, mais la vitesse absolue est très lente. Quelqu'un a-t-il des idées à ce sujet ? Merci !

J'ai remarqué cela parce que je faisais une construction de logiciel et le temps d'exécution est passé de 15 minutes dans mon ancienne VM XP à 30 minutes dans ma nouvelle VM Win7. Le processus de construction utilise l'utilitaire GNUMAKE et effectue BEAUCOUP d'éjection vers le processeur de commande.

P.S. J'ai posé cette question à l'origine sur stackoverflow.com, mais ils m'ont suggéré de la poser ici.

0 votes

Cela ne semble pas vraiment être une bonne approche de lui faire démarrer autant de processus Shell séparés, mais alors je ne suis pas familier avec gnumake pour Windows....

0 votes

Les processus cmd sur WIn 7/8 et Server 2008 sont un véritable cauchemar. Conhost démarre lentement, se bloque, s'arrête, et le lancement complet prend 10 fois plus de temps qu'avec le système d'exploitation précédent.

1voto

Daniel Points 310

Au lieu d'utiliser cmd.com, avez-vous essayé PowerShell ? Je crois que c'est dans les accessoires.

0 votes

Je n'ai pas testé powershell parce que le vrai problème que j'avais était la vitesse d'un processus de construction de logiciel existant. L'effort pour le convertir en powershell dépasserait de loin les avantages. Soyons francs, un processus qui bifurque vers des milliers de shells de commande est un cas très marginal. J'ai simplement été surpris par l'énorme différence de vitesse entre COMMAND.COM et CMD.EXE et par la lenteur réelle de CMD.EXE au démarrage.

1 votes

Vous pouvez essayer de démarrer le mode XP dans Windows 7 et voir si vos performances sont meilleures.

0 votes

J'avais utilisé VirtualBox, mais tester sous Windows Virtual PC (en fait une version mise à jour de Virtual PC 2007 et les fondements de XP Mode) était une bonne idée. Le même test y a pris 3,1 secondes pour CMD.EXE et 1,1 seconde pour COMMAND.COM (contre 2,8 secondes et 1,5 seconde sous VirtualBox - ce qui est assez proche de la même vitesse). Donc, les temps de COMMAND.COM sous XP sont à peu près les mêmes que sous Win7, mais les temps de CMD.EXE sont presque le double (et CMD.EXE sous XP prenait déjà 3 fois plus de temps que COMMAND.COM donc la version Win7 est 6 fois plus longue).

1voto

Il semble y avoir un problème avec les dispositions de clavier installées et cmd.exe (du moins c'est vrai pour ma machine vista et certains de mes collègues).

Essayez de supprimer toutes les langues supplémentaires dans "Paramètres système->Options régionales et linguistiques->Clavier et langues->Changer de clavier->Services installés" (traduit à la volée - YMMV).

Cela a réduit le démarrage de cmd.exe pour moi de "très ennuyeux" à "instantané".

0voto

Lloyd Cotten Points 1388

Je vous suggère d'utiliser Sysinternals Process Explorer et Process Monitor pour avoir une idée de ce qui se passe lorsque le système se bloque. Il existe de nombreux tutoriels pour ces deux programmes et je vous recommande vivement de vous familiariser avec eux.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X