点击上方关注 “终端研发部

设为“星标”,和你一起掌握更多数据库知识

来源:网络

下载最怕什么,那绝对是进度条: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%不动,别傻楞去充白金会员,大声告诉你:钛金会员都没用!

BAT等大厂Java面试经验总结

想获取 Java大厂面试题学习资料

扫下方二维码回复「BAT」就好了

回复 【加群】获取github掘金交流群
回复 【电子书】获取2020电子书教程
回复 【C】获取全套C语言学习知识手册
回复 【Java】获取java相关的视频教程和资料
回复 【爬虫】获取SpringCloud相关多的学习资料
回复 【Python】即可获得Python基础到进阶的学习教程
回复 【idea破解】即可获得intellij idea相关的破解教程
关注我gitHub掘金,每天发掘一篇好项目,学习技术不迷路!
如果喜欢就给个“在看”

为什么下载小电影会卡在99% ?你懂的相关推荐

  1. 程序人生 - 为什么下载,经常会卡在99%?

    下载最怕什么,那绝对是进度条:99%. 这是一个充满魔力的数字,曾让我狂躁.焦虑,甚至激动得想砸键盘锤电脑扔手机. 比如下载学习资料或看动作大片,苦苦等待2小时,好不容易下到99%,以为2秒后就能享受 ...

  2. 漫画:为什么下载电影进度总是卡在 99% 就不动了?

    作者|漫话编程 来源|漫话编程(ID:mhcoding) 进度条 其实,早在计算机发明之前,就已经有了进度条的概念.1896 年,波兰经济学家 Karol Adamiecki发明了一种叫做harmon ...

  3. 为什么下载小电影时,经常会卡在99%?

    来源:综合自网络 下载最怕什么,那绝对是进度条:99%. 这是一个充满魔力的数字,曾让我狂躁.焦虑,甚至激动得想砸键盘锤电脑扔手机. 比如下载学习资料或看动作大片,苦苦等待2小时,好不容易下到99%, ...

  4. 为什么下载那种小电影时,经常会卡在99%?

    上一篇:3600万中国人在抖音"上清华" 来源:综合自网络下载最怕什么,那绝对是进度条:99%.这是一个充满魔力的数字,曾让我狂躁.焦虑,甚至激动得想砸键盘锤电脑扔手机.比如下载学 ...

  5. 为什么下载小电影时,进度经常会卡在99%?

    点击"开发者技术前线",选择"星标????"让一部分开发者看到未来 来源:综合自网络 下载最怕什么,那绝对是进度条:99%. 这是一个充满魔力的数字,曾让我狂躁 ...

  6. 漫话:为什么你下载小电影的时候进度总是卡在99%就不动了?

    进度条 其实,早在计算机发明之前,就已经有了进度条的概念.1896 年,波兰经济学家 Karol Adamiecki发明了一种叫做harmonogram(波兰语,时间表)的图表:同一时间,亨利·甘特( ...

  7. 我的世界java下载慢怎么办_漫话:为什么你下载小电影的时候进度总是卡在99%就不动了?...

    进度条其实,早在计算机发明之前,就已经有了进度条的概念.1896 年,波兰经济学家 Karol Adamiecki发明了一种叫做harmonogram(波兰语,时间表)的图表:同一时间,亨利·甘特(H ...

  8. 逍遥安卓 出现android,解决逍遥安卓模拟器一直卡在99%的方法

    逍遥安卓模拟器也被称之为:MEmu play模拟器,这款模拟器分为国内版本以及海外版本.在使用该模拟器的时候我们可以下载到很多手机中的游戏,然后利用逍遥模拟器模拟的手机环境来运行这些游戏.不知道大家在 ...

  9. 获取服务器信息卡在99,进度条总是卡在99%,是怎么回事儿

    进度条,也称之为安慰条,就和你有拖延症的朋友差不多,你拖他办一件事,他总告诉你快好了,在等两分钟就好了,事实却是永远好不了! 就像某雷的这个进度条,我手纸都准备好了,你居然卡在了99%,着实不给面子 ...

最新文章

  1. 把视频玩出花的快手来到CVPR ,解密背后AI能力,落地空间有多大?
  2. document的window对象
  3. QT 在定义新的类型时候,注意了(定义了ReadXml),在实现的时候加上Qlabel
  4. Python-day06-2018.7.9_编码以及小知识点补充
  5. 牛人学习h264运动估计的方法
  6. 超越杭州、北京居首、广州晋级第一梯队……国内城市算力大起底!
  7. JavaSE----变量、String、运算符、流程控制
  8. table或者列表中超出的字用省略号代替的方法(支持IE6)
  9. if(!!boolean)两次取反
  10. 杀毒软件 对应的进程名称
  11. Unity使用Aspose.Words创建表格和UI截图一起插入到Word中并保存到本地的一种解决方案
  12. Kotlin 1.4 版本正式发布:新功能一覽
  13. 【游戏开发实战】(完结)使用Unity制作水果消消乐游戏教程(九):使用UGUI显示游戏UI
  14. 【计算机网络】计网笔记知识点整理篇(1-3章,后续章节持续更新)
  15. 拔开云雾的linux网络
  16. 七人成团即拼即赚七人拼团模式解析
  17. 更改chm文件的字体大小
  18. python 爬虫 --字符编写问题
  19. Bybit USDT永续合约交易测评 | TokenInsight
  20. 一个人有没有领导力,就看这3点

热门文章

  1. Matlab利用已知方阵创建斜对角矩阵
  2. 解决电脑(win10)打开右键反应很慢--测试有效
  3. 如何创建编辑维基百科?
  4. iso16949是什么管理体系
  5. 如何迁移操作系统至SSD/HDD?
  6. 《引爆用户增长》学习笔记
  7. 深入理解Java虚拟机——类加载的时机
  8. 基于51单片机的教室智能照明控制设计
  9. 课程设计书五子棋AI算法及其实现
  10. 2021/5/16学习总结