共计 1854 个字符,预计需要花费 5 分钟才能阅读完成。
下载最怕什么,那相对是进度条: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% 不动,别傻楞去充白金会员,大声通知你:钛金会员都没用!