Win7 命令处理器(CMD.EXE)真的很慢

Win7 命令处理器(CMD.EXE)真的很慢

有没有人觉得 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 的虚拟机中,相同的测试需要不到 1 秒的时间。

为什么 CMD.EXE 这么慢?我期望它的性能与 VM 中 COMMAND.COM 的性能类似。原始机器和 VM 之间的 CMD.EXE 速度比似乎合理,但绝对速度太慢了。有人对此有什么看法吗?谢谢!

我之所以注意到这一点,是因为我当时正在构建软件,执行时间从旧 XP VM 中的 15 分钟增加到新 Win7 VM 中的 30 分钟。构建过程使用 GNUMAKE 实用程序,并对命令处理器进行大量处理。

PS 我最初在 stackoverflow.com 上问过这个问题,但他们建议我去这里。

答案1

除了使用 cmd.com,你尝试过 PowerShell 吗?我相信它在附件下。

答案2

安装的键盘布局和 cmd.exe 似乎有问题(至少对于我的 Vista 机器和我的一些同事来说是这样)。

尝试从“系统设置->区域和语言选项->键盘和语言->更改键盘->已安装的服务”中删除任何附加语言(即时翻译 - YMMV)。

这使得 cmd.exe 的启动从“非常烦人”变为“即时”。

答案3

我建议使用 Sysinternals Process Explorer 和 Process Monitor 来了解挂起时发生了什么。这两个程序都有很多很棒的教程,我强烈建议您熟悉它们。

相关内容