2010-08-01 66 views
2

如何查找硬盤速度?我不能使用System.IO.File.Copy並使用計時器來獲得硬盤速度,因爲在緩存文件之後,速度會比實時更高。如何查找硬盤速度

我能做些什麼呢?

+1

你需要什麼樣的速度?讀?寫?順序?隨機? – Oded 2010-08-01 15:24:49

+0

寫入速度? 如果可能的話還FileCopy? – pedram 2010-08-01 15:56:01

回答

2

寫入文件後,隨後的讀取速度遠高於預期的原因在於該文件在寫入內存時被磁盤系統緩存中的操作系統緩存。後續的文件讀取實際上是從內存中讀取的,而不是磁盤。

請參閱該代碼項目的文章提供了一個解決方案,通過利用FILE_FLAG_NO_BUFFERING標誌繞過操作系統磁盤緩存:

http://www.codeproject.com/KB/files/unbuffered.aspx

該解決方案可以在你的環境中使用,以避免OS磁盤緩存,並所以要獲得「真實」的磁盤速度。

0

您在詢問「實時」。由於實際情況下緩存正在使用中,所以我沒有看到任何問題。您可能希望使用一些腳本或類似的腳本來運行您的程序,而不是使用某些File.Copy或其他更簡單的測試。

但真正的問題是,那麼呢?即你是否想知道某個磁盤是否足夠快,或者你是否想知道你的程序是否足夠快?