2

我有一个 javascript 下载器,它通过多个 HTTP 范围请求获取大文件:

xhr.setRequestHeader("Range", "bytes=" + start + "-" + end);

而结束是

var end = start + length

范围请求是必须的,因为我需要在文件中获取特定的偏移量(考虑从多个 HTTP 服务器下载)如果下载器即将使用这种方法下载 ~100MB 文件,那么获得良好吞吐量的最佳长度是多少?

4

1 回答 1

1

恐怕你的问题没有简单的答案。有许多类型的连接,对于每一对客户端-服务器,答案会有所不同,这取决于延迟、带宽、连接质量、断开连接的频率,甚至更复杂的东西,因为在某些情况下并行连接的数量、一个请求中传输的最大大小等可能存在限制。如果您只对某种此类场景感兴趣,例如与附近服务器的快速、良好连接,那么我会说您选择的值并不重要,因为连接开销通常低于十分之一一秒钟。

这还取决于您对响应的处理方式;如果您将其加载到内存中,那么请考虑到您将从不知道的计算机上消耗内存,并且假设没有人会介意为一个段消耗额外的 16Mb 是一个很大的假设。

于 2012-08-26T02:48:00.130 回答