在其他人看来,Windows 7 命令处理器 (CMD.EXE) 的启动速度真的很慢吗?
我从命令行运行了这个测试(ntimer 是 Windows 服务器资源工具包中的一个计时实用程序,如果你没有安装它,你可以把它放在外面):
ntimer cmd /c for /l %a in (1,1,100) do @cmd /c rem
它所做的只是将新的 CMD.EXE 运行 100 次。在我的 x64 Win7 基本系统上运行大约需要 2.3 秒。在 x86 Win7 虚拟机中运行它大约需要 5.6 秒。有趣的是,在使用旧的 16 位命令处理器 COMMAND.COM 的 VM 中,相同的测试只需要不到 1 秒的时间。
为什么 CMD.EXE 这么慢?我期望的性能类似于我在 VM 中使用 COMMAND.COM 看到的性能。原始机器和 VM 之间 CMD.EXE 的速度比似乎合理,但绝对速度慢得多。有人对此有任何想法吗?谢谢!
我注意到这一点是因为我正在进行软件构建,执行时间从旧 XP VM 中的 15 分钟变为新 Win7 VM 中的 30 分钟。构建过程使用 GNUMAKE 实用程序,并对命令处理器进行大量的炮击。
PS我最初在stackoverflow.com上问过这个问题,但他们建议我去这里。
而不是使用 cmd.com,您是否尝试过 PowerShell?我相信它在配件下。
安装的键盘布局和 cmd.exe 似乎存在问题(至少对于我的 vista 机器和我的一些同事来说是这样)。
尝试从“系统设置->区域和语言选项->键盘和语言->更改键盘->已安装的服务”(即时翻译-YMMV)中删除任何附加语言。
这将我的 cmd.exe 启动从“非常烦人”减少到“即时”。
我建议使用 Sysinternals Process Explorer 和 Process Monitor 来了解它挂起时发生了什么。这两个程序都有很多很棒的教程,我强烈建议您熟悉它们。