有啥方法可以确定 Windows 中可移动驱动器的速度吗?

Posted

技术标签:

【中文标题】有啥方法可以确定 Windows 中可移动驱动器的速度吗?【英文标题】:Any way to determine speed of a removable drive in windows?有什么方法可以确定 Windows 中可移动驱动器的速度吗? 【发布时间】:2008-10-08 15:42:51 【问题描述】:

有什么方法可以在不实际读取文件的情况下确定 Windows 中的可移动驱动器速度。如果我必须读取文件,需要读取多少才能获得半准确的速度(例如确定设备是 USB2 还是 USB1)?

编辑:澄清一下,USB2 和 USB1 就是一个例子。这些可能是紧凑型闪存,可能是 SSD,可能是可移动驱动器。我正在尝试尽快确定这一点,因为它对应用程序的响应能力有实际影响。

编辑:还应该澄清,这必须以编程方式完成。它可能会在 C++ 中完成。

编辑:Boost 的答案是我一直在寻找的(尽管我没有用 C++ 编写任何 WMI)。但我需要知道我必须检查哪些属性才能确定相对速度。我不需要确切的速度(就像我所说的 USB1 和 USB2 之间的速度差异),但我需要知道它是否会是 SLLOOOOWWW。

【问题讨论】:

WMI 作为获取信息的方法通常很慢。大约一秒钟/查询一次。 【参考方案1】:

WMI - Physical Disks Properties 是我发现的一篇文章,它至少可以帮助你弄清楚你连接了什么。我预见到事情会朝着将特定制造商和型号等同于速度的表格发展,这并不像您希望的那样简单。

【讨论】:

恐怕不会太好用。如果通过 USB1 集线器连接,同一个 USB2 磁盘可能会慢很多。这恰好是您应该警告用户的时候。【参考方案2】:

查询操作系统以获取有关硬件的信息,而不是尝试从数据传输时间信息中对其进行逆向工程,可能会获得更好的结果。

例如,相同的传输速度并不一定意味着两个设备使用相同的技术,但如果您的应用程序可以使用此类信息,其他因素(例如寻道时间)会提高准确性。

为了在这项工作完成时保持应用程序响应,请尝试异步执行调用并向用户提供某种进度指示器。例如,看看WinDirStat 如何处理这个进度指示(我喜欢 pac-man 动画,因为每个目录都被分析了)。

【讨论】:

【参考方案3】:

我会说几兆字节。传输速度一开始可能很慢,然后随着传输的进行而加快。文件大小也会有所不同(单个 1GB 文件的传输速度要比 1GB 小文件快得多)。

执行此操作的最佳方法是将文件复制到设备或从设备复制文件,并计算代码需要多长时间。 USB1 速度是 11Mb/s(我认为),USB2 是 480Mb/s(注意这些是整个总线的数字,而不是每个端口,因此同一总线上的多个设备会改变实际数字)。

【讨论】:

【参考方案4】:

尝试TerraCopy 并从设备复制一个~400mb - 500mb 的大文件并将其复制到设备,您会看到速度。

【讨论】:

【参考方案5】:

在 Windows 中,您可以通过从设备管理器中选择查看 ->“连接设备”来确定连接的 USB 设备是否为 USB2,然后检查该设备是否在 USB2 控制器(USB2 增强型主机控制器)下。

请注意,这并不意味着您的设备实际上会以更高的速度运行,您仍然需要为此进行实际的吞吐量测试。 Sisoft Sandra 基准测试软件列出了其功能列表中支持的可移动硬盘。

编辑:由于原始问题的澄清,我已经提交了一个新的答案。

【讨论】:

【参考方案6】:

考虑可能影响数据传输速度的因素:

用于将设备连接到系统的总线的速度。除非通过 USB1 连接,否则这不太可能成为您的限制因素。 对于硬盘驱动器,转速和寻道时间很重要。 7200 RPM 驱动器读取和写入数据块的速度比 5400 RPM 驱动器快。 光驱和磁驱在不使用时通常会减速,因此第一次访问会比第二次访问多几个数量级。 特定设备上使用的文件系统。 缓存数据和文件系统元数据。缓存的元数据越少,磁盘驱动器或光盘驱动器就越需要寻找数据的位置。 数据访问模式。访问少量连续的大文件几乎总是比访问分散在磁盘上的大量小文件要快。 文件系统碎片

您也许可以根据您希望看到的设备的各种特征来进行一些启发式方法,但通常没有好的方法来计算总线、媒体、文件系统和数据的特定组合的传输速度无需实际测量即可访问模式。如果您决定进行衡量,请尽量模拟您的最终访问模式。

【讨论】:

【参考方案7】:

我要借Raymond Chen's水晶球说你真的不想要这个。您可能想要使用异步 I/O。如果您在一秒钟内没有得到 I/O 的结果,您想检查发生了多少。取该数字的倒数,您就可以向用户报价。

如果一秒钟后什么也没发生,您可能会感到惊讶。但即使这样也可能发生。例如,硬盘可能需要一秒钟才能启动。每秒轮询一次,直到发生某些事情。

【讨论】:

以上是关于有啥方法可以确定 Windows 中可移动驱动器的速度吗?的主要内容,如果未能解决你的问题,请参考以下文章

Windows10默认网关不可用故障解决方法

win10有啥方法可以自定义windows更新吗

an unknown error has occurred,装显卡驱动的时候显示这个,请问有啥方法能解决?

电脑驱动程序包都有啥东西呢?

有啥方法可以检测驱动器是不是为 SSD?

如何在windows10系统中映射网络驱动器