談?wù)?Web 端性能優(yōu)化

什么是性能優(yōu)化

一提到前端性能優(yōu)化大家的本能反應(yīng):sprite 圖合并 / 靜態(tài)資源打包 /... 峰弹,那么針對網(wǎng)絡(luò)這塊是怎么進(jìn)行性能優(yōu)化的?

一般性的用戶行為例子:

用戶 => 促銷頁面 => 商品頁面 => 下單流程 => 支付成功

首先用戶訪問促銷活動頁面,之后再到商品詳情頁面也拜,然后再下單到支付成功泡嘴。用戶每進(jìn)行一個步驟都是一次頁面的訪問,所以上面流程至少有 4 個及其以上的訪問柑土。一般性我們怎么來知道性能優(yōu)化的標(biāo)準(zhǔn)呢蜀肘?我們來看一下業(yè)內(nèi)的一個關(guān)鍵詞:

3秒 = 50% 離開

3 秒意味著可能有 50% 用戶已經(jīng)離開了,它其實(shí)定義了好與不好稽屏。例如:白屏?xí)r間超過了3秒扮宠,用戶極有可能已經(jīng)離開了。如果假設(shè)每個頁面加載都超過 3 秒狐榔,那用戶真正能留下來的概率就會是下面這樣:

0.5 * 0.5 * ...

可以看出鏈路越長轉(zhuǎn)化越差坛增。

對于我們電商來說获雕,性能優(yōu)化如果能多降低 0.1 秒,能極大的提升銷售的轉(zhuǎn)化收捣,對成本來說也會有很大的影響届案。另外,3 秒這個指標(biāo)對訪問入口也是有影響的罢艾。大于 3 秒的頁面會影響到百度或者谷歌對網(wǎng)站的 SEO楣颠。流量可能會受一定影響。所以在流量和轉(zhuǎn)化的一種雙重夾擊下面昆婿,性能優(yōu)化成為一個必行之道球碉。

性能優(yōu)化的衡量標(biāo)準(zhǔn)

  • Web 端(PC / Web App):首屏?xí)r間、白屏?xí)r間仓蛆、可交互時間睁冬、完全加載時間等。
  • 移動端(Native App):Crash 率看疙、內(nèi)存使用率豆拨、FPS(Frames Per Second,每秒傳輸幀數(shù))能庆、端到端響應(yīng)時間等施禾。
  • 后端:響應(yīng)時間(RT)、吞吐量(TPS)搁胆、并發(fā)數(shù)等弥搞。

下圖是 Web 端的性能優(yōu)化的木桶理論:

定位性能問題

通常的:

首屏?xí)r間 = DNS時間 + 建立連接時間 + 后端響應(yīng)時間 + 網(wǎng)絡(luò)傳輸時間 + 首屏頁面渲染時間

上面的描述看起來會比較抽象,我們拿 Chrome 調(diào)試中的 Network 來看下具體的時序圖是什么樣渠旁。

上圖中我們關(guān)心的指標(biāo)通常有:

  • Stalled(掛起)
  • DNS Lookup(DNS 節(jié)點(diǎn)查詢)
  • TTFB(首字節(jié)的返回)
  • Content Download(文檔下載時間)

從圖中可以看到 DNS 查詢時間是 4.13ms攀例,TTFB 是 2.08s,Content Download是 673.91ms顾腊。其中 TTFB 非常高粤铭,這可能是服務(wù)器、基礎(chǔ)網(wǎng)絡(luò)杂靶、CDN 出現(xiàn)問題梆惯。第二是 DNS Lookup 是 4.13ms,看起來還好一些吗垮,可能采用 CDN 就近策略垛吗,如果是單機(jī)部署的話這個值可能會高一些。Content Download 和網(wǎng)絡(luò)抱既、帶寬及文本大小有關(guān)系职烧。

看完時序圖我們來看一下整體的一個匯總:

結(jié)合上面是單個時序圖及多個請求的匯總圖,我們來分析一下整體的時序圖防泵。

首先可以看到 index 請求發(fā)完后緊接著發(fā)了 9 個請求蚀之,其中 CSS 有3個,JS 有6個捷泞。有 3 個 JS 時間非常的長足删,這樣情況我們可以調(diào)整代碼打包的策略,將小的 JS 文件合并來減少請求的數(shù)量锁右。一般建議小于 5k 的文件不要單獨(dú)發(fā)一個 HTTP 請求失受。

執(zhí)行性能優(yōu)化

根據(jù)上面我們發(fā)現(xiàn)的性能問題,下面是執(zhí)行了性能優(yōu)化后的效果圖咏瑟。

  • 均衡請求值的大蟹鞯健(其中藍(lán)色的線是分布相對均勻)

  • 控制合理的請求數(shù)量:單次5個(一般初次的請求數(shù)量 5 個就能滿足了)

總結(jié)

最后總結(jié)一下性能優(yōu)化。

性能優(yōu)化更加像圖中這樣一個冰山码泞。上面是網(wǎng)絡(luò)層的優(yōu)化兄旬,下面是代碼層的優(yōu)化。當(dāng)然代碼層優(yōu)化是一個非常龐大的項(xiàng)目余寥,它甚至?xí)嵏参覀兊募夹g(shù)選型领铐。對于網(wǎng)絡(luò)層我們都是有共性的,比如控制數(shù)量宋舷、控制請求的情況绪撵,不僅僅只是減少請求的數(shù)量甚至要均衡請求的大小。這是我們眼睛能看到的部分祝蝠,這部分優(yōu)化好之后其實(shí)也會對頁面性能有一個質(zhì)的飛躍音诈。但是代碼層因?yàn)槊總€項(xiàng)目都不一樣選型,我們可以看下比如:部分動畫我們是否可以采用CSS3的性能绎狭、插入DOM的時候是否可以批量插入细溅。就像圖中一樣,代碼層優(yōu)化水也是很深的坟岔,需要大家在自己的項(xiàng)目中慢慢摸索谒兄。

以上就是關(guān)于Web端的性能優(yōu)化,希望能幫到大家社付。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末承疲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鸥咖,更是在濱河造成了極大的恐慌燕鸽,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啼辣,死亡現(xiàn)場離奇詭異啊研,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門党远,熙熙樓的掌柜王于貴愁眉苦臉地迎上來削解,“玉大人,你說我怎么就攤上這事沟娱》胀裕” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵济似,是天一觀的道長矫废。 經(jīng)常有香客問我,道長砰蠢,這世上最難降的妖魔是什么蓖扑? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮台舱,結(jié)果婚禮上律杠,老公的妹妹穿的比我還像新娘。我一直安慰自己柿赊,他們只是感情好俩功,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碰声,像睡著了一般诡蜓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胰挑,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天蔓罚,我揣著相機(jī)與錄音,去河邊找鬼瞻颂。 笑死豺谈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贡这。 我是一名探鬼主播茬末,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼盖矫!你這毒婦竟也來了丽惭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤辈双,失蹤者是張志新(化名)和其女友劉穎责掏,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體湃望,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡换衬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年痰驱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞳浦。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡担映,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出术幔,到底是詐尸還是另有隱情另萤,我是刑警寧澤湃密,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布诅挑,位于F島的核電站,受9級特大地震影響泛源,放射性物質(zhì)發(fā)生泄漏拔妥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一达箍、第九天 我趴在偏房一處隱蔽的房頂上張望没龙。 院中可真熱鬧,春花似錦缎玫、人聲如沸硬纤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筝家。三九已至,卻和暖如春邻辉,著一層夾襖步出監(jiān)牢的瞬間溪王,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渺尘。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓潮酒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親敲董。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容