下载最怕什么,那绝对是进度条:99%。

这是一个充满魔力的数字,曾让我狂躁、焦虑,甚至激动得想砸键盘锤电脑扔手机。

比如下载学习资料或看动作大片,苦苦等待2小时,好不容易下到99%,以为2秒后就能享受大片的美妙,步入极乐世界。

结果半小时过去了,进度条死死卡在99%,任你千兆光纤,专线宽带,愣是一丝不动,稳如泰山。

再去检查路由器,狂按重启键,发现网络一切正常,网页秒开,唯独进度条上的99%永恒不变。

即使你重启电脑,重新打开下载软件,重新开始那99%的下载任务,它依旧还是99%,不增不减。

你不禁开始疑惑:为什么进度条总要卡在99%?为什么最后1%永远加载不动?

今天,要为大家破解这一千古谜题,揭开背后不可告人的真相。

技术原理导致

关于进度条99%的问题,得从它的诞生说起。

1896年,波兰经济学家Karol Adamiecki制作了一种名叫时间表的图,提出了早期的进度条概念,但是当时没有具体的应用。

等到1979年,这哥们Mitchell Model在他的博士论文中提出了进度条。

论文里他表示:进度条能在复杂的计算机环境中监视系统行为。

说白了就是:进度条能直观展现电脑在做什么,做到哪种程度。

正因为进度条能用最简单的图案和数字,表达电脑复杂的计算过程的特性,于是渐渐在各大操作系统流行起来,成为了电脑的经典标志之一。

但问题来了,人不是电脑更不是神,再牛X的程序员也无法预测电脑什么时候完成工作。

所以程序员开发出来的进度条,根本不能精准地反映出电脑情况,所谓的50%、80%、90%,仅是大概的数字,预测而已。

可以说你看到的进度条,和实际的进度是两个东西。

对于一些可定量的项目,进度条基本可以和实际相符,但不同的硬件资源和后台程序都会相互占据资源,计算机很难恒定分配运行,当你影片下载到 99% 时又打开了大型游戏,或者哪个小任务卡住了,就到了艰难的「1% 时刻」。

其实这种 1% 随时都在发生,但我们只对最后的 1% 印象深刻。

它有时候前面很快,后面很慢。

就像 U 盘复制文件,系统会根据文件数量和传输速度算好大概时间,但并不是每个百分比都执行相同的工作,因为每个文件大小都不一样,而最后 1% 可能因为还要验证文件、全盘扫描、整理数据等等,所以耗时也最久。

它也可能一直不快不慢,因为它整条都是假的。

虽然卡在 99% 的等待并不让人愉快,但也不得不承认,没有 0% 到 99%,我们的情绪会更焦躁,因为不知道尽头在哪里。

这就是进度条的厉害之处 —— 让你心甘情愿地等待。

产品经理的恶意 

1985 年,卡内基梅隆大学人机交互研究所教授 Brad Myers 还是一位研究生,当时他就在论文里提出了这个观点。

只要看到进度条,人们就会感觉好点,它能让人放松,让人在等待时间去干点别的 —— 去花 5 分钟发个传真,或者干些在 1985 年的办公室会干的事。

虽然进度条由程序员开发,但真正设计进度条的人,是产品经理,包括功能、样式、图案等。

很多产品经理在设计进度条时,会特意要求程序员制作一个“虚假进度条”。

可能你会问,产品经理为什么无缘无故搞个假东西骗人呢?

给你们举个栗子,看完就懂了。

假设现在有2个相同下载速度的进度条,A和B,它们的下载完成时间都是100秒。

A是经过产品经理特殊调教的虚假进度条,它很套路,用了20秒下载到99%,最后1%花了80秒完成。

B是老实进度条,没被调教,10秒加载到10%,100秒100%,一分不差。

此时因为A前十秒加载到99%,而同样时间B却仅有10%,在强烈的对比下,大部分人会认为A比B更快,A比B更好用。

在优胜劣汰的规则下,用户肯定更多会选择A这种方式的软件,而产品经理想要留住用户,采用这种虚假进度条那是必须的。

现在明白了吧,有时候不是进度条不准,而是产品经理在搞事。

 下载完成后的块校验 

根据我多年的经验,导致这种情况发生的原因主要还是因为资源块校验的机制。

迅雷下载采用P2P协议加速,P2P的优点在于有多个数据来源。

每个下载过该文件的人,相当于一台服务器,当别人下载时自动在后台上传数据,提供速度。

说白了就是下的人越多,你所下载的资源能被拼凑时间越短。

但缺点同样也有,因为数据来源多,质量参差不齐外加上传不稳定,容易导致文件乱码出错。

因此迅雷定下了一个规则:在下载到99.9%的时候,会对文件进行块检验,如果某个块出现问题,无法重新下载,则会一直卡在当前进度不动。

下面这个图很好的说明了问题

兄弟你的形状怎么跟我们不一样啊?

如果哪天卡在99.9%不动,别傻楞去充白金会员,大声告诉你:钛金会员都没用!

程序人生 - 为什么下载,经常会卡在99%?相关推荐

  1. 微信背单词类小程序,小鸡单词源码下载,打卡微信小程序

    微信背单词类小程序,小鸡单词源码下载,微信小程序开发学习案例,小程序开发教程.一个用来背单词每天打卡的微信小程序,还有词汇测试,包含多种词库后台由腾讯云wafer解决方案. 前段时间开始学做微信小程序 ...

  2. 人生重开模拟器微信小程序源码下载开启不一样的人生体验+网站版本源码双版本

    这是一款人生重开模拟器微信小程序源码 让你的人生开启不一样的变化 不知道各位玩家有没有被最近超火的一款名为<人生重开模拟器>小游戏刷屏呢?想必不少玩家玩过了各种各样的模拟器,有的可以模拟医 ...

  3. 哈工大计算机系统大作业——程序人生-Hello’s P2P

    计算机系统 大作业 题          目程序人生-Hello's P2P 专          业 计算机科学与技术 学       号120L022401 班          级 200300 ...

  4. 潘爱民:计算机程序的演进——我的程序人生三十年

    本文为<新程序员004>内容,与潘爱民畅谈他的程序人生.<新程序员004>即将上市,敬请期待.从MySQL之父.MariaDB创始人Michael "Monty&qu ...

  5. 厉害!6 岁学编程,19 岁收月薪 2 万 的 Offer | 程序人生 2020

    作者 | 杨若瑜 责编 | 伍杏玲 出品 | CSDN(ID:CSDNnews) [CSDN 编者按]在CSDN举办的"原力计划"活动中,编者看到一篇< 老程序员教你如何提高 ...

  6. 程序人生之九:2012,回首这7年

    Csdn 从来就是一个藏龙卧虎之地.感谢网友 ttyyuukk 这篇文章,让我的程序人生系列又有了新的血液. 转眼就2012了,还有没有明年?我不知道,知道世界末日是假的,但是,谁能肯定是假的呢?只是 ...

  7. 【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)

    卡塔尔世界杯元素python海龟绘图(附源代码) 世界杯主题前端特效5个(附源码)程序人生 本文目录: 一.python turtle海龟绘图卡塔尔世界杯元素 (1).绘制效果图 (2).代码演示方法 ...

  8. 程序人生【一些经典的资料】

    CSDN下载精品专辑 http://download.csdn.net/doc 其中 http://download.csdn.net/album/detail/2261 程序人生 这个包含了好基本经 ...

  9. 给程序员的VIM速查卡

    摘自:http://coolshell.cn/articles/5479.html 这个速查卡来自这里.其用颜色标注了级别: Green   = 存活级 Yellow   = 感觉良好 Orange ...

最新文章

  1. 2022-2028年中国电容器用薄膜行业市场研究分析及投资前景展望报告
  2. 三维激光重建原理与实现HALCON
  3. Post Content_Length exceeds the limit
  4. Android切换到主线程
  5. 字节跳动2018校招算法方向(第一批) —— 1-最外层点
  6. [leetcode]19.删除链表的倒数第N个节点
  7. Some Fiori offline screenshot in Mac
  8. 企业中书写css,web前端开发企业级CSS常用命名,书写规范总结(示例代码)
  9. GitHub下载文件时缓慢的问题
  10. jQery 操作CSS
  11. 如何使用 Firefox 阻止指纹识别的侵扰?
  12. 在ASP.Net中实现RSA加密
  13. 2021年2 分以上优秀护理相关SCI 期刊汇总
  14. 204. 电子编程入门到工程师--混沌与秩序--天书信号
  15. 无线投影服务器连接投影仪,无线投屏器怎么与投影机连接
  16. 克隆出错fatal: unable to access ‘https://github.com/‘: OpenSSL SSL_connect:
  17. 【通过】华为OD机试真题59:叠积木
  18. java 远程文件操作_java远程文件操作 - osc_88djj30s的个人空间 - OSCHINA - 中文开源技术交流社区...
  19. ROS(七):移动机器人的导航和SLAM(一)
  20. 小程序瀑布流的实现三种方式

热门文章

  1. 独立站卖家如何利用Google广告做好站外引流?
  2. 读书笔记-精准努力-出身寒门改变命运
  3. h5在线制作html5,在线制作HTML5多媒体作品的技巧
  4. 【产品分析】曹操出行
  5. Python可视化数据分析03、jieba【分词】
  6. DNS解析和优化(操作与实践,一分钟就能实现DNS优化)
  7. Nexus(1):Nexus的安装与配置
  8. 狡兔三窟,新手创业淘宝无货源店群模式该如何自处?
  9. Windows10 无法识别手机MTP问题
  10. 基于MTK 的 TP 驱动分析