等待硬碟活動停止是一個好的做法嗎?

等待硬碟活動停止是一個好的做法嗎?

自從我使用 Windows 3.1 以來,我總是看到自己在打開程式或開始批次活動之前等待硬碟活動停止。在那些時候,我確信這會有所幫助,您可以清楚地看到同時打開 2 個程式比打開一個程式花費的時間要長得多,完成後再打開另一個程式。我還傾向於等待一個程式完全關閉(換出),然後再打開另一個程式。

但如今快取演算法和硬碟效能以及快取發生了很大變化。

所以問題是,透過等待硬碟活動停止,我是否仍然做得很好,或者我可以做任何我想做的事情而不用擔心它?

我問這個問題是因為我最新的聯想筆記本沒有硬碟,所以我不知道它何時工作或不工作。

順便說一句,我目前的系統是windows 7。

答案1

簡短的回答是,這取決於為什麼硬碟燈亮。長答案:

但如今快取演算法和硬碟效能以及快取發生了很大變化。

是的,這是事實,但這不是您等待 HDD LED 停止的原因(或者更確切地說,這不是您不再注意到效能下降的原因)。硬碟是大型機械設備,只擅長一件事 - 唯一正在做一心一意。您一次只能讀取/寫入一個磁區,因此嘗試同時使用硬碟通常會導致毆打

所以問題是,透過等待硬碟活動停止,我是否仍然做得很好,或者我可以做任何我想做的事情而不用擔心它?

再次,這取決於關於硬碟正在做什麼。為什麼?好吧,如果您要向硬碟傳輸千兆位元組的文件,或者從硬碟機傳輸千兆位元組的文件,那麼您肯定會遇到磁碟抖動(這也會導致磁碟機磁頭快速來回移動,縮短驅動器的使用壽命)。然而,如果你不知道為什麼HDD LED 閃爍,則可能是背景進程。

大多數後台進程(搜尋索引器、磁碟碎片整理程序、.NET 運行時優化器等)都會執行以下操作不是導致顛簸有兩個原因。首先,它們以較低的優先權運行,因此作業系統對其 I/O 請求設定較低的優先權。第二個是,當您的 CPU 或磁碟使用率達到某個閾值時,大多數這些後台程序都會停止或減少其活動,以避免影響您感知的系統效能(或導致系統抖動)。

我問這個是因為我最新的聯想筆記本沒有硬碟,所以我不知道它何時工作或不工作。

那就別擔心了。 Windows 7 中的大多數後台服務都知道我上面概述的問題,因此您不會遇到任何速度下降的情況。除非嘗試同時使用硬碟(即在嘗試一次載入多個程式的同時傳輸大量檔案),您不應該遇到任何抖動。

最後,如果您想知道特定進程使用硬碟的傳輸速率,請參閱問題如何查看目前使用的硬碟頻寬百分比是多少?


最後要注意的一件事是,擁有固態硬碟完全改變了磁碟抖動遊戲。雖然它無法完全避免(是的,甚至SSD),與機械硬碟相比,固態硬碟不太明顯(請參閱固態硬碟有哪些優點和缺點?如果您想了解更多)。

答案2

這取決於。如果您同時執行兩個任務,除了磁碟 IO 之外什麼都不做,那麼它們會互相減慢速度,所以您最好一次只執行一個任務。大多數任務至少涉及一些cpu 時間,在此期間磁碟可以自由地為其他任務工作,因此您可以看到運行兩個這樣的任務時更好的整體性能,因為當一個任務使用cpu 時,另一個可以執行IO,並且反之亦然。

關於寫入活動,大多數時候,寫入會在快取中停留一段時間,然後在後台輕輕刷新到磁碟。在運行新程序之前等待所有這些後台寫入完成是浪費時間,因為先加載新程序,然後再加載新程序時,這些寫入在緩存中停留一段時間不會造成任何損害。執行某些操作,要么開始進行計算而不是磁碟IO,然後使用空閒的磁碟時間完成寫入。

平均而言,大多數時候您會看到同時執行兩件事的淨增益,因此作為一般規則,不,您不應該在執行其他操作之前等待磁碟 IO 停止。

答案3

管理讀取/寫入請求是硬碟控制器和作業系統的工作,而不是您自己的工作。

是的,在過去,應用程式會在大量 I/O 的情況下凍結。但那是在軟體開發的輝煌時期,C 語言和文字編輯器幾乎可以編寫任何東西。

現在是硬體時代。硬體的發展速度遠遠超過了軟體開發速度,因此今天的硬體幾乎可以 100% 運行,不會錯過任何一個節拍。最重要的是,開發人員已經吸取了教訓。越來越多的程式在另一個執行緒上旋轉它們的 UI,從而緩解了去年的 Hourglass/SpinningBeachBall of Death 的無回應問題。

答案4

在任何其他系統上都沒有關係。但如果同時發生太多事情,Windows 很容易陷入混亂(或死鎖)。剛啟動後尤其如此。

您不必等待所有活動都停止,但通常應該推遲到系統相當正常地響應為止。

相關內容