我第一次在 DOS 窗口中运行命令时出现长时间延迟

我第一次在 DOS 窗口中运行命令时出现长时间延迟

我们运行一个服务器 (Win2k),上面有几种工具。所有工作站 (XP) 都将其 PATH 设置为包含该文件夹。

当我们grep从工作站上的 DOS 框运行某个工具(例如)时,有时工具运行前会有较长的延迟(最多一分钟)。延迟过后,一切正常。后续运行不会出现延迟,即使从另一个 DOS 框运行也是如此。

有任何想法吗?

* 更多细节*

这种情况总是会产生延迟。我们正在服务器上某个文件夹中的工具上工作。该工具在位于构建该工具的文件夹中的 DOS 框中的一个工作站上进行编辑和编译,然后运行,延迟始终存在。接下来的运行正常。因此重新生成 EXE 会导致延迟。

答案1

Windows 正在登录服务器以查看您想要的命令是否在该文件夹中。第一次之后,它已经登录了。我们每天在服务器上打开文档和文件夹时都会遇到同样的问题。

您可以在登录时运行以下命令来加快速度(在 Windows 中):

Net Use \\ServerName

该命令需要一分钟才能处理,但它可能会作为用户不会注意到的后台任务发生。不过,我不知道这是否会导致您遇到“连接过多”的问题。

答案2

grep不是 Win32 命令而是 Unix 命令,因此您可能调用了旧版本 Windows 中存在的 Unix 子系统。

必须启动一个特殊的系统进程来支持这些 Unix 命令,这可以解释初始延迟的原因。我不记得进程的名称,但是如果您使用类似 Process Explorer 的东西,您可以看到它正在启动。

也许这TechNet 系列可以有所帮助。有关子系统的详细信息,请参阅“Windows Internals”一书。

答案3

您的路径中可能存在超时的网络位置——当您尝试从 DOS 或“开始”菜单中的“运行”选项运行程序时,如果没有首先在当前工作目录中找到可执行文件或脚本/批处理文件,则会搜索 PATH 中列出的每个目录。

您可以在 DOS 窗口中键入“PATH”,查看列表中是否有驱动器 C: 之外的任何内容。如果没有,那么下一个嫌疑人可能是:

  1. 首次加载非常大的程序也可能是一个问题(因为后续使用将来自缓存)。您有您使用的“grep”工具的链接吗?如果它是一个小型独立程序,那么这应该不是问题

  2. 防病毒软件运行缓慢(非常罕见)

  3. 磁盘故障开始出现(尽快进行完整备份)

  4. 文件系统中碎片过多(可通过运行“磁盘碎片整理程序”轻松解决,其位置为:开始菜单 -> 程序 -> 附件 -> 系统工具 -> 磁盘碎片整理程序)

相关内容