迅雷下載卡在99.9%無法完成怎麼辦(下載好的電影為什麼看的時候很卡)

下載最怕什麼,那絕對是進度條: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%不動,別傻楞去充白金會員,大聲告訴你:鈦金會員都沒用!