我想编写一个程序来找出 USB 端口的平均数据传输速度。我该如何实施它?
我能想到的唯一方法是将一个大文件写入 USB 驱动器安装的路径并找出该过程的时间。还有比这更好的方法吗?
答案1
USB2理论上可以达到480Mbit/Sec的速度。这相当于(非常粗略地)60Mbytes/Sec。如果您的硬盘无法跟上这种速度,那么您将得到错误的结果。
一种选择是购买/借用一个声称可以连接 1 Gbit/Sec 的 USB 以太网适配器。通过交换电缆或 1Gbit/秒集线器/交换机将其连接到另一台具有 1Gbit/秒以太网端口的计算机。
在一台机器上运行nc -v -l -p 5000 > /dev/null
。这将侦听端口 5000 并将收到的所有内容发送到/dev/null
.这样就不涉及硬盘了。
另一方面,运行time yes|nc -v a.b.c.d 5000 >/dev/null
(其中a.b.c.d
是远端机器的 IP 地址)。这将发送y
到远端机器,直到它停止,此时它将打印发送的数据量并time
打印所花费的时间。
一段时间后(例如 10 或 20 秒),按 停止发送Ctl-C
并算出速度。请记住,nc
打印发送的字节数,但您可能需要位。bits = 8 * bytes
-v
您可能需要在命令中添加更多s 以便您可以看到发生了什么。