发布网友 发布时间:2022-04-21 01:24
共1个回答
热心网友 时间:2022-06-17 02:17
Steam的下载当然是多线程的,单线程的下载工具几乎见不到了
在不考虑网络的情况下, 最耗时是合并操作, 在每个线程的任务完成之后, 会合并文件, 然后再在剩下的部分分块, 分线程. 当然, 大多数的软件是最后才来合并, 比如IDM.
因为每个线程下载的内容会先写到一个字节数组(buffer), buffer满了之后, 就追写到一个临时文件(很多下载器会建立类似part.1之类的文件就是)。
总不能放到内存占着,然后会把一堆临时文件一个一个地读取,,并写入到新的文件(目标文件), 即是你最终得到的文件,在电脑配置相同时, 越大的下载任务, 所需要的时间自然越长。
至于暂停之后变快, 可能是因为统一重新分配了更快下载节点, 也可能是因为突发速率的缘故(一般提供商设置一个远大于带宽的突发速率值, 以提高用户浏览体验)
Steam官方说他们全面使用http协议, 下载区块以1MB为单位, 并且每下载完一个块就解压缩, 因此排除p2p方式(例如bt)的可能.
STEAM下载慢的解决方法:
如果逐渐变慢的话,看下任务管理器,磁盘占用率是不是百分百了,借鉴一下上面的说法,感觉说的有道理,由于长时间的下载,磁盘IO读写负荷增大,不能及时释放,导致线程之间由于同步问题彼此拖了后腿。
更加恶性循环,因此读写速度变慢,无论是下载、安装都*停滞不前。重启下电脑,限速为最大10M,启动完后直接下载,会看到磁盘读取速度变为正常。