前端性能優(yōu)化案例分析 前端性能優(yōu)化總結(jié)(5篇)

格式:DOC 上傳日期:2023-03-25 09:44:34
前端性能優(yōu)化案例分析 前端性能優(yōu)化總結(jié)(5篇)
時間:2023-03-25 09:44:34     小編:zdfb

總結(jié)不僅僅是總結(jié)成績,更重要的是為了研究經(jīng)驗,發(fā)現(xiàn)做好工作的規(guī)律,也可以找出工作失誤的教訓(xùn)。這些經(jīng)驗教訓(xùn)是非常寶貴的,對工作有很好的借鑒與指導(dǎo)作用,在今后工作中可以改進提高,趨利避害,避免失誤。那么我們該如何寫一篇較為完美的總結(jié)呢?下面是小編整理的個人今后的總結(jié)范文,歡迎閱讀分享,希望對大家有所幫助。

前端性能優(yōu)化案例分析 前端性能優(yōu)化總結(jié)篇一

上面的腳本計算了 head 中的第一個 js腳本執(zhí)行后加載頁面所需的時間,但它沒有給出任何關(guān)于從服務(wù)器獲取頁面所需的時間,或是頁面初始化生命周期的信息。

由此我們可以計算舊文檔的卸載、重定向、應(yīng)用緩存、dns lookup、tcp 握手、http 請求處理、http 響應(yīng)處理、dom 處理、document加載完成等頁面性能打點。具體可以參考navigation-timing w3c的規(guī)范 和 幾個頁面關(guān)鍵指標(biāo)是如何計算的

從上圖中我們可以看出document processing是 navigation timing 獨有的,后面我們也會介紹resource timing。整體而言 level 2 標(biāo)準(zhǔn)更加的全面,把web performance timing分成了各個 performance metric,看起來一目了然,然而各個主流瀏覽器還存在兼容性問題。

介紹完這兩個performance navigation timing api,我們順便再來看一下其余幾個主要的performance timing api:resource timing api 、 paint timing api 和 long task timing api,以及如何使用performanceobserver異步獲取性能數(shù)據(jù)。

performanceobserver 可以被動地訂閱與性能相關(guān)的事件,也就是說這個 api 通常不會干擾頁面主線程的性能,因為它的回調(diào)通常在空閑期間觸發(fā)。默認情況下,performanceobserver 對象只能在條目出現(xiàn)時觀察它們。如果想延遲加載性能分析代碼(不阻止更高優(yōu)先級的資源),我們需要這么做:

設(shè)置buffered 為true,瀏覽器將在第一次調(diào)用 performanceobserver 回調(diào)時返回其性能條目 緩沖區(qū)中的歷史條目。

前端性能優(yōu)化案例分析 前端性能優(yōu)化總結(jié)篇二

(下文以2022年2月a頻道頁面為例,均為dummy仿造后數(shù)據(jù),也不代表整體情況)

.如何衡量性能問題嚴重性

衡量性能問題嚴重性,是為了讓大家意識到優(yōu)化的必要性,以及急迫性

同.性能黑榜,不贅述

見下圖“可交互時長分布圖”,一個記錄代表一個用戶。

即使不去統(tǒng)計,我們都能很明顯的看出來,這個a頻道頁面:

和開發(fā)說明問題嚴重性時,這個會很有代入感,比如見下圖,10%的android用戶在以上,是不是可以認為他們大部分都跳失了?

下圖不用算都能明顯發(fā)現(xiàn),秒開率和 整體數(shù)據(jù)差異實在太大

.分析性能瓶頸-分析思路

首先要明確,性能分析主要是給相關(guān)頁面的前端、開發(fā)同學(xué)看,給關(guān)心問題的測試同學(xué)看,所以我們可以拆分的更細節(jié)、更專業(yè)??梢韵确智岸恕⒑蠖?個大類:

.分析性能瓶頸-前端環(huán)節(jié)

業(yè)務(wù)因素(具體不表),分終端是重點。

從可交互時長、秒開率、3秒+率、5秒+率,分別分析,都能論證--支付寶端問題更明顯。

下圖將t1~t9 每個階段打點情況可視化,并分析重點環(huán)節(jié)的差值(打點邏輯由前端定義)

見圖2可以明顯觀察到:

1、接口耗時太久,且后變差明顯(可以去追溯下發(fā)生了什么); 2、lbs獲取耗時很久,高于平均1倍以上,而取lbs是a頻道頁的關(guān)鍵邏輯

我們根據(jù)手淘的高中低端機評判標(biāo)準(zhǔn),埋點獲得數(shù)據(jù)。平均時長,高中低各自占比,以及低端時長分布(也可選中高端)。下圖可發(fā)現(xiàn),低端機比例很低(需要思考是否有必要重點優(yōu)化),但低端機超過3秒以上的比例遠高于其他的(和總體的完全時間分布對比) 。

包括:機型、系統(tǒng)等,可做參考

.分析性能瓶頸-后端環(huán)節(jié)

主要從后端維度來分析

這里可見,下圖盡管是開始發(fā)起請求-》收到請求的全過程,但也嚴重超標(biāo)(幾乎是標(biāo)準(zhǔn)值的2倍)

前端性能優(yōu)化案例分析 前端性能優(yōu)化總結(jié)篇三

通過線上用戶的真實采集,并制定能反應(yīng)用戶體感的指標(biāo),進行性能黑榜和全局趨勢分析。

從重點單點角度,我們通過性能黑榜;從整體視角,我們通過整體趨勢分析。

.性能數(shù)據(jù)的采集

arms前端監(jiān)控專注于對web場景、小程序場景的監(jiān)控,從頁面打開速度(測速)、頁面穩(wěn)定性(js診斷錯誤)和外部服務(wù)調(diào)用成功率(api)這三個方面監(jiān)測web和小程序頁面的健康度。

sls日志服務(wù)為log、metric、trace等數(shù)據(jù)提供大規(guī)模、低成本、實時的平臺化服務(wù)。日志服務(wù)一站式提供數(shù)據(jù)采集、加工、查詢與分析、可視化、告警、消費與投遞等功能。

odps即maxcompute,是適用于數(shù)據(jù)分析場景的企業(yè)級saas模式云數(shù)據(jù)倉庫。

fbi是阿里內(nèi)的智能大數(shù)據(jù)分析和可視化平臺,下面的所有截圖都是在fbi平臺配置圖表而成,還未對外開放。

arms-sdk結(jié)合前端的自定義埋點,在海量用戶訪問的同時,就會自動上報數(shù)據(jù)到sls日志庫,整體過程如下圖:

.性能指標(biāo)的確定

所有前臺頁面,每個用戶每次瀏覽的有效數(shù)據(jù)(完全加載<15s 內(nèi)有效)

指標(biāo)的影響因子:從用戶視角,頁面流量越大,則對整體數(shù)據(jù)的影響越大(也就是權(quán)重越大)

這樣做的好處:流量越大數(shù)值越嚴重的,優(yōu)化的效果(正反饋)越明顯,確定了治理性能問題的優(yōu)先級。

結(jié)合淘系、以及集團其他部門的

.性能黑榜

為何要用性能黑榜來作為主要發(fā)現(xiàn)手段?我們通??赏评淼茫?/p>

(可根據(jù)各自業(yè)務(wù),加個樣本量的篩選,如我們看每日pv 10w以上的)

.整體性能趨勢分析

整體趨勢分析,即是為在整體角度,看我們的頁面性能趨勢,它是重要的度量指標(biāo)。 這里我們把所有的流量都納入,沒有頁面的區(qū)分,為的是基于用戶維度,流量大的頁面權(quán)重自然會更大。

從上圖看,1月初到2月中旬的數(shù)據(jù)正在持續(xù)惡化,必須要采取措施治理!

前端性能優(yōu)化案例分析 前端性能優(yōu)化總結(jié)篇四

1、靜態(tài)資源的壓縮合并(js 代碼壓縮合并、css 代碼壓縮合并、雪碧圖)

2、靜態(tài)資源緩存(資源名稱加 md5 戳)

? ? ? 可以通過鏈接名稱控制緩存:通過前端構(gòu)建工具為打包的文件添加md5后綴,這樣當(dāng)打包上線時請求的鏈接發(fā)生改變,這樣可以防止由于緩導(dǎo)致靜態(tài)資源更新失效;

3、 使用 cdn 讓資源加載更快

二.優(yōu)化頁面渲染

1、css 放前面,js 放后面

2、懶加載(圖片懶加載、下拉加載更多)

先將src賦值成一個通用的預(yù)覽圖,下拉時候再動態(tài)賦值成正式的圖片。如下,是預(yù)覽圖片,比較小,加載很快,而且很多圖片都共用這個,加載一次即可。待頁面下拉,圖片顯示出來時,再去替換src為data-src的值。(data-開頭的屬性瀏覽器渲染的時候會忽略掉,提高渲染性能)

3、減少dom 查詢,對 dom 查詢做緩存

4、減少dom 操作,多個操作盡量合并在一起執(zhí)行(documentfragment)

dom 操作是非常耗費性能的,因此插入多個標(biāo)簽時,先插入 fragment 然后再統(tǒng)一插入 dom。因為fragment文檔片段存在于內(nèi)存中,并不在dom樹中,所以將子元素插入到文檔片段時不會引起頁面回流。

5、事件節(jié)流

在開發(fā)過程中會遇到頁面一些頻繁觸發(fā)的事件,比如mouseover、scroll、resize等事件。一秒可以執(zhí)行很多次,這樣會造成嚴重的頁面性能問題,導(dǎo)致頁面c出現(xiàn)卡頓甚至瀏覽器崩潰。因此我們需要對事件進行節(jié)流,簡單的說就是控制其執(zhí)行的次數(shù)。這里就涉及到了常用到的js的節(jié)流和防抖功能實現(xiàn)。 ? ? ? ?1.防抖(debounce):在事件被觸發(fā)n秒后再執(zhí)行回調(diào),如果在這n秒內(nèi)又被觸發(fā),則重新計時。

? ? ?2、節(jié)流(throttle):規(guī)定一個單位時間,在這個單位時間內(nèi),只能有一次觸發(fā)事件的回調(diào)函數(shù)執(zhí)行,如果在同一個單位時間內(nèi)某事件被觸發(fā)多次,只有一次能生效。

6、盡早執(zhí)行操作(domcontentloaded)?

前端性能優(yōu)化案例分析 前端性能優(yōu)化總結(jié)篇五

很多人都以為,前端性能優(yōu)化,重點在“前端”優(yōu)化,“測試”很難起到主導(dǎo)作用。試著換個角度,從整個研發(fā)團隊視角看,前端做運動員專項治理,測試做裁判員專項評測,這套機制,是否更能切實做到優(yōu)化,達成的數(shù)據(jù)也更讓大家信賴?再者,測試不止局限于此,還可做隊醫(yī)、分析師。。。。

.可持續(xù)優(yōu)化閉環(huán)

以下持續(xù)優(yōu)化閉環(huán),是我們摸索著實行了一年多,有效且高效的解法。

從上圖看,整個過程為:

step0、前端事先進行埋點,(一般前端做了sdk,直接引入即可)

step1、測試通過性能黑榜,發(fā)現(xiàn)最為突出的重點性能問題頁面(首屏平均時長&秒開率,pv&業(yè)務(wù)意義, 多項結(jié)合度量)

step2、協(xié)助前端一起專業(yè)分析問題頁面,找出性能瓶頸點

step3、前端更有策略地針對性治理

step4、查看性能趨勢變化,驗證優(yōu)化效果

step5、假設(shè)已達到優(yōu)化預(yù)期,或者有更糟糕的頁面把之前頁面擠下去,繼續(xù)關(guān)注黑榜前列的頁面(即跳到step1,繼續(xù)輪轉(zhuǎn))

我們可以發(fā)現(xiàn),測試通過發(fā)現(xiàn)、分析、驗證 三板斧,驅(qū)動推進頁面性能優(yōu)化。

.效果明顯

從2021年10月份開始迭代以來,共發(fā)現(xiàn)了8類嚴重性能問題。

包括:端外(支付寶)性能問題,外投&跨端性能問題,pha架構(gòu)性能問題,運營不規(guī)范配置導(dǎo)致、其他業(yè)務(wù)原因?qū)е碌男阅軉栴}等。

并且快速有效,在業(yè)務(wù)方或其他同學(xué)提過來之前,我們都已經(jīng)發(fā)現(xiàn)并有了分析,在優(yōu)化節(jié)奏上更具有主動性。

【本文地址:http://mlvmservice.com/zuowen/1813765.html】

全文閱讀已結(jié)束,如果需要下載本文請點擊

下載此文檔