【问题标题】:How can I find hard disk speed怎么查硬盘速度
【发布时间】:2011-03-23 21:23:18
【问题描述】:

如何查看硬盘速度?我不能用System.IO.File.Copy和定时器来获取硬盘速度,因为缓存文件后,速度真的会比实时高。

我能做些什么呢?

【问题讨论】:

  • 您需要什么速度?读?写?顺序?随机?
  • 写入速度?如果可能的话,还要 FileCopy 吗?

标签: c# performance-testing hard-drive


【解决方案1】:

写入文件后后续读取速度远高于预期的原因是文件在写入时被操作系统缓存在磁盘系统缓存中,即在内存中。随后的文件读取实际上是从内存中读取的,而不是从磁盘中读取的。

请参阅此代码项目文章,该文章提供了一种通过利用 FILE_FLAG_NO_BUFFERING 标志绕过 OS 磁盘缓存的解决方案:

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

此解决方案可在您的上下文中使用,以避免操作系统磁盘缓存,从而获得“真正的”磁盘速度。

【讨论】:

    【解决方案2】:

    您在询问“实时”。由于在实际情况下正在使用缓存,因此我看不到任何问题。您可能想使用一些脚本或类似的东西来运行您的程序,而不是一些 File.Copy 或其他更简单的测试。

    但真正的问题是,然后呢? IE。您是想知道某个磁盘是否足够快,还是想知道您的程序是否足够快?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 2012-07-09
      • 2019-03-20
      • 2011-07-30
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多