首次在 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 之類的工具,您可以看到它正在啟動。

也許這個技術網系列可以有一些幫助。有關該子系統的詳細資訊可以在《Windows Internals》一書中找到。

答案3

您的路徑中可能存在逾時的網路位置 - 當您嘗試從 DOS 或「開始」功能表中的「執行」選項執行程式時,如果在該路徑中沒有先找到可執行檔或腳本/批次檔目前工作目錄,然後也會搜尋PATH 中列出的每個目錄。

您可以在 DOS 視窗中鍵入「PATH」以查看清單中是否包含磁碟機 C: 以外的任何內容。如果不是,那麼下一個嫌疑犯可能是:

  1. 首次載入非常大的程式也可能是一個問題(因為後續使用將來自快取)。您有您正在使用的“grep”工具的連結嗎?如果它是一個小型獨立程序,那麼這不應該是問題

  2. 防毒軟體速度慢(非常罕見)

  3. 磁碟故障開始出現(盡快獲得完整備份)

  4. 檔案系統中的碎片過多(可以透過執行磁碟碎片整理程式輕鬆修復,可以在以下位置找到該碎片整理程式:開始功能表 -> 程式 -> 附件 -> 系統工具 -> 磁碟片段整理程式)

相關內容