<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么下載小電影時,經(jīng)常會卡在99%?

          共 2280字,需瀏覽 5分鐘

           ·

          2021-11-26 19:09

          點擊上方Python知識圈設為星標

          回復100獲取100題PDF


          閱讀文本大概需要 3.3?分鐘

          來源:綜合自網(wǎng)絡


          下載最怕什么,那絕對是進度條:99%。

          這是一個充滿魔力的數(shù)字,曾讓我狂躁、焦慮,甚至激動得想砸鍵盤錘電腦扔手機。


          比如下載學習資料或看動作大片,苦苦等待2小時,好不容易下到99%,以為2秒后就能享受大片的美妙,步入極樂世界。

          結(jié)果半小時過去了,進度條死死卡在99%,任你千兆光纖,專線寬帶,愣是一絲不動,穩(wěn)如泰山。


          再去檢查路由器,狂按重啟鍵,發(fā)現(xiàn)網(wǎng)絡一切正常,網(wǎng)頁秒開,唯獨進度條上的99%永恒不變。

          即使你重啟電腦,重新打開下載軟件,重新開始那99%的下載任務,它依舊還是99%,不增不減。


          你不禁開始疑惑:為什么進度條總要卡在99%?為什么最后1%永遠加載不動?

          今天,要為大家破解這一千古謎題,揭開背后不可告人的真相。


          ?技術原理導致?


          關于進度條99%的問題,得從它的誕生說起。

          1896年,波蘭經(jīng)濟學家Karol Adamiecki制作了一種名叫時間表的圖,提出了早期的進度條概念,但是當時沒有具體的應用。


          等到1979年,這哥們Mitchell Model在他的博士論文中提出了進度條。


          論文里他表示:進度條能在復雜的計算機環(huán)境中監(jiān)視系統(tǒng)行為。

          說白了就是:進度條能直觀展現(xiàn)電腦在做什么,做到哪種程度。


          正因為進度條能用最簡單的圖案和數(shù)字,表達電腦復雜的計算過程的特性,于是漸漸在各大操作系統(tǒng)流行起來,成為了電腦的經(jīng)典標志之一。

          但問題來了,人不是電腦更不是神,再牛X的程序員也無法預測電腦什么時候完成工作。

          所以程序員開發(fā)出來的進度條,根本不能精準地反映出電腦情況,所謂的50%、80%、90%,僅是大概的數(shù)字,預測而已。

          可以說你看到的進度條,和實際的進度是兩個東西。


          對于一些可定量的項目,進度條基本可以和實際相符,但不同的硬件資源和后臺程序都會相互占據(jù)資源,計算機很難恒定分配運行,當你影片下載到 99% 時又打開了大型游戲,或者哪個小任務卡住了,就到了艱難的「1% 時刻」。

          其實這種 1% 隨時都在發(fā)生,但我們只對最后的 1% 印象深刻。



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


          就像 U 盤復制文件,系統(tǒng)會根據(jù)文件數(shù)量和傳輸速度算好大概時間,但并不是每個百分比都執(zhí)行相同的工作,因為每個文件大小都不一樣,而最后 1% 可能因為還要驗證文件、全盤掃描、整理數(shù)據(jù)等等,所以耗時也最久。



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


          雖然卡在 99% 的等待并不讓人愉快,但也不得不承認,沒有 0% 到 99%,我們的情緒會更焦躁,因為不知道盡頭在哪里。

          這就是進度條的厲害之處 —— 讓你心甘情愿地等待。



          ?產(chǎn)品經(jīng)理的惡意?


          1985 年,卡內(nèi)基梅隆大學人機交互研究所教授 Brad Myers 還是一位研究生,當時他就在論文里提出了這個觀點。

          只要看到進度條,人們就會感覺好點,它能讓人放松,讓人在等待時間去干點別的?——?去花 5 分鐘發(fā)個傳真,或者干些在 1985 年的辦公室會干的事。


          雖然進度條由程序員開發(fā),但真正設計進度條的人,是產(chǎn)品經(jīng)理,包括功能、樣式、圖案等。
          很多產(chǎn)品經(jīng)理在設計進度條時,會特意要求程序員制作一個“虛假進度條”。

          可能你會問,產(chǎn)品經(jīng)理為什么無緣無故搞個假東西騙人呢?

          給你們舉個栗子,看完就懂了。

          假設現(xiàn)在有2個相同下載速度的進度條,A和B,它們的下載完成時間都是100秒。


          A是經(jīng)過產(chǎn)品經(jīng)理特殊調(diào)教的虛假進度條,它很套路,用了20秒下載到99%,最后1%花了80秒完成。

          B是老實進度條,沒被調(diào)教,10秒加載到10%,100秒100%,一分不差。

          此時因為A前十秒加載到99%,而同樣時間B卻僅有10%,在強烈的對比下,大部分人會認為A比B更快,A比B更好用。

          在優(yōu)勝劣汰的規(guī)則下,用戶肯定更多會選擇A這種方式的軟件,而產(chǎn)品經(jīng)理想要留住用戶,采用這種虛假進度條那是必須的。


          現(xiàn)在明白了吧,有時候不是進度條不準,而是產(chǎn)品經(jīng)理在搞事。



          ?下載完成后的塊校驗?


          根據(jù)我多年的經(jīng)驗,導致這種情況發(fā)生的原因主要還是因為資源塊校驗的機制。


          迅雷下載采用P2P協(xié)議加速,P2P的優(yōu)點在于有多個數(shù)據(jù)來源。

          每個下載過該文件的人,相當于一臺服務器,當別人下載時自動在后臺上傳數(shù)據(jù),提供速度。

          說白了就是下的人越多,你所下載的資源能被拼湊時間越短。

          但缺點同樣也有,因為數(shù)據(jù)來源多,質(zhì)量參差不齊外加上傳不穩(wěn)定,容易導致文件亂碼出錯。

          因此迅雷定下了一個規(guī)則:在下載到99.9%的時候,會對文件進行塊檢驗,如果某個塊出現(xiàn)問題,無法重新下載,則會一直卡在當前進度不動。

          下面這個圖很好的說明了問題

          兄弟你的形狀怎么跟我們不一樣啊?

          如果哪天卡在99.9%不動,別傻楞去充白金會員,大聲告訴你:鈦金會員都沒用!


          PS:我自己建了一個每天可領外賣優(yōu)惠券的號,經(jīng)常領到15元的無門檻券不花冤枉錢~
          加微信送《Python知識點100題PDF》

          pk哥個人微信


          添加pk哥個人微信即送Python資料


          Python知識點100題的PDF

          Python相關的電子書10本


          記得備注:“100題”




          往期推薦
          01

          公眾號所有文章匯總導航(2-10更新)

          02

          Python經(jīng)典100題PDF整理

          03

          求你了,別再用 pip 那烏龜?shù)乃俣热グ惭b庫了!


          點擊閱讀原文查看pk哥原創(chuàng)視頻

          我就知道你“在看”

          瀏覽 35
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  三区av在线 | 伊人爱爱网 | 亚洲影院之台湾 | 日本婬片A片免费免费的 | 美女扒开粉嫩尿囗给男生桶 |