怪獸大做戰--解析網站打開慢的緣由

在開始前,博主先百度下「爲何xx打開慢」,結果以下前端

傳統巨頭chrome

百度 30,200,000   新浪 48,200,000   搜狐   4,420,000瀏覽器

新興貴族服務器

知乎 47,100,000   豆瓣   6,230,000   優酷   2,310,000網絡

爲何互聯網技術發展到今天,依然沒法完全解決網站打開慢的問題?這是IT行業的頑疾不可治癒嗎?前端工程師

從數據上能夠看到 知乎雖然是新興貴族,但其網站打開慢的次數卻比傳統巨頭百度還要多,幾乎和新浪並肩,新浪有數十年打開慢次數的積累,才險勝知乎,知乎做爲後期只秀真是使人另眼相看。併發

而優酷則是出現打開慢次數最少的一家,可見 各大互聯網公司在技術的儲備和運用上仍是有差異的。dom

用戶打開瀏覽器,輸入網址,頁面就加載出來。這簡簡單單的背後到底隱藏這什麼怪獸,讓各大互聯網勢力忙的不可開交?分佈式

首先請看一張圖,這是在瀏覽器打開一個頁面,瀏覽器都幹了些什麼的時間表,高併發

在高級瀏覽器例如chrome,能夠經過js腳本window.performance.timing 拿到這些數據,oneapm 的Browser Insight 就是以此爲基礎開發出來的

c4bc83668f2ad472179d88f60ab3051a

看着一堆英文,你必定暈了,其實我也暈了。

一般診斷網站打開慢,把這個時間表能夠簡單的分爲3個過程,來進行分析就行了 ,每一個過程都包含一些細節

1 網絡連接的時間 (fetchStart-responseStart)

2 瀏覽器接受數據構建頁面(responseStart-domContentLoadedEventStart)

3 頁面加載資源並渲染頁面(domContentLoadedEventStart-loadEventEnd)

 

分身獸

致使網站打開慢的第一隻怪獸必然是 網絡連接時間,互聯網公司中土豪勉強和這隻怪獸打個平手,其餘互聯網公司均早早鳴金收兵。

由於這隻怪獸居然會分身,首先分身爲電信網絡和聯通網絡,而後又都分身爲全國34個行政區,若是有時候你以爲你打開網站速度很快,可是某些地區的用戶打開網站很慢,那必定是這個地區的怪獸太強了~,對付這隻怪獸一般用的武器

1 dns 加速 例如 dnspod,加速你在全國的域名解析速度

2 網站鏡像,解決多線路互通的問題,例如 聯通 電信 移動

3 cdn加速,讓你的資源距離用戶更近一些,打開速度天然更快

遺憾的是 這3招都是燒錢的,一口氣全用上,不是土豪根本用不起,因此要分析清楚本身的訪客羣在哪,有的放矢的花點銀子

幻化獸

致使網站打開慢的第二隻怪獸 就是接受數據的速度,在解決第一隻怪獸後,能影響接受數據速度的主要是服務器的響應時間,尤爲是當用戶量比較大,數據比較多,業務比較複雜的時候,這隻怪獸居然 會跟着幻化,例如高併發下的分佈式事務鎖(電商),海量數據的快速檢索(搜索),圖片、視頻快速加載(多媒體)

和這頭怪獸做戰,主要是靠人才和常年累月的技術積累,各大互聯網公司也只一致的,均採起擁抱開源+壟斷人才的措施,這就是爲何最近幾年應屆畢業生的價碼愈來愈高,壟斷人才的戰鬥從這裏就開始了。

分裂獸

致使網站打開慢的第三隻怪獸是最近幾年纔出現,之前頁面比較簡單,承載的業務也單一,隨着時間的推移,一個頁面愈來愈大,業務愈來愈複雜,進而問題也就跟着來了。

這是一隻分裂獸,這隻怪獸一般喜歡和用戶呆在一塊兒,卻你玩作迷藏的遊戲,如今主要分裂爲 ie、火狐、chrome、各大瀏覽器的移動版 和國產手機上的國產瀏覽器,國產的太複雜就不一一列舉了。

這裏一 新浪微博爲例,微博登陸後的首頁,累計發起了281個請求用來加載各類各樣的資源,一個簡簡單單的發微博的頁面都是如此的複雜,更不用說你們平時用其餘系統了。

image

這是錯誤日誌

image

 

各大互聯網公司在同分裂獸做戰的過程當中,勝多敗少,這樣的戰績,中小公司難以望其項背

緣由以下

1 一個頁面都加載這麼多資源,一個站點N個頁面加載的資源更多遇到的問題也會更多,可見和分身獸交戰是多磨燦烈,沒有大量的技術人才,和準確的分析,難有勝算,一線互聯網公司由於在這一塊有着豐富的積累,因此平手居多,你看新浪也是用了近 10秒才完成全部資源的加載。

2 對這些資源進行管理須要用到 前端工程師,而網頁變的複雜也是最近幾年的事情,前端工程師的培養有個過程,除了老牌互聯網公司有技術儲備和人才儲備可以穩住陣腳,其餘公司都是疲於應戰例如 隨便打QQ商城   http://www.wanggou.com/  一個電子商務的首頁, 就報js錯誤,至於這個錯誤影不影響業務,我就不清楚了

image

對js錯誤日誌的收集和分析,也是一件複雜的事情,由於訪問量越大,數據量越大,除了大公司,小公司作本身業務都人手不夠,更不用說瀏覽器日誌收集這些和業務無關的事情了。

服務器端能夠隨便打日誌,看日誌,而瀏覽器端只能閉着眼睛,猜!用戶遇到什麼故障了每每只有打電話吐訴後遠程桌面,才能知道,效率十分低下。

相關文章
相關標籤/搜索