zoukankan      html  css  js  c++  java
  • 同时 下载/上传 任务数应该更智能

    改进方案

    序号 原则 目的或优势
    1 尽可能地利用带宽 提高效率
    2 尽可能地减少同时传输的文件数 减少对硬盘的同时读写,旨在保护服务器和用户的硬盘,亦可尽量使硬盘不成为速度的瓶颈



     

    目前情况的测试

    列表中的文件均为50MB以上的大文件。

    同时一个:

     从上图可判断,同时下载一个文件,因为下载文件的首尾时速度慢,导致出现了有规律的“低谷”。虽然最大速率可跑满带宽,但带宽利用率不足70%。

    同时二个:

    虽然整体的利用率相比同时下载一个文件增高,但仍有不规律的低谷。这是因为:同时两个文件有可能几乎同时即将下载完(此时是低谷),并同时开始下载(第二个低谷)下两个文件。

     

    设想

    根据上文“改进方案”中的“原则”,关于与同时下载的任务数有以下两种方案:

    • 若队列中的文件均为“大文件”,则原则上同时仅下载一个文件,但:当速率小于峰值的80%且持续达2秒时,则增加一个同时下载的文件数。这两个文件下载完成后,继续同时下载一个文件。
    • 若队列中的文件均为“大文件”,则原则上同时仅下载一个文件,当某个文件即将下载完毕而未下载完毕时,就开始同时下载下个文件。实现:下载第一个文件的结尾部分时,也在同时下载下个文件的开头部分。二者相加,以便实现充分利用带宽。

    包括百度网盘、360云盘,以及FTP客户端工具等等,均可考虑采纳本文的理念。

  • 相关阅读:
    揭秘 HashMap 实现原理(Java 8)
    并发容器之写时拷贝的 List 和 Set
    Maven 整合 SSH 框架
    Hibernate框架学习之注解配置关系映射
    Hibernate框架学习之注解映射实体类
    单用户,多设备登录问题
    ios scrollview button 延时点击问题
    Android 的 AlarmManager 和 wakeLock联合使用
    ios bitcode 机制对 dsym 调试文件的影响
    信息类型的异步更新方法
  • 原文地址:https://www.cnblogs.com/xiaohi/p/12521307.html
Copyright © 2011-2022 走看看