日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
自動化Web性能優(yōu)化分析方案

 在構(gòu)建 Web 站點的過程中,任何一個細(xì)節(jié)都有可能影響網(wǎng)站的訪問速度。如果開發(fā)人員不了解前端性能相關(guān)知識,很多不利網(wǎng)站訪問速度的因素會在線上形成累加,從而嚴(yán)重影響網(wǎng)站的性能,導(dǎo)致網(wǎng)站訪問速度變慢、用戶體驗低下,最終導(dǎo)致用戶流失。頁面性能對網(wǎng)頁而言,可謂舉足輕重。因此,對頁面的性能進(jìn)行檢測分析,是開發(fā)者不可忽視的課題。那么我們?nèi)绾螌撁孢M(jìn)行監(jiān)控分析及性能評判?對性能評判的規(guī)則又是什么樣的呢?

創(chuàng)新互聯(lián)建站主要從事網(wǎng)站制作、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)特克斯,10余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

從技術(shù)方面來講,前端性能監(jiān)控主要分為兩種方式,一種叫做合成監(jiān)控(Synthetic Monitoring,SYN),另一種是真實用戶監(jiān)控(Real User Monitoring,RUM)。

  • 合成監(jiān)控,就是在一個模擬場景里,去提交一個需要做性能檢測的頁面,通過一系列的工具、規(guī)則去運行你的頁面,提取一些性能指標(biāo),得出一個性能報告。

  • 真實用戶監(jiān)控,就是用戶在我們的頁面上瀏覽,瀏覽過程就會產(chǎn)生各種各樣的性能數(shù)據(jù),我們把這些性能數(shù)據(jù)上傳到我們的日志服務(wù)器上,進(jìn)行數(shù)據(jù)的提取清洗加工,最后在我們的監(jiān)控平臺上進(jìn)行展示的一個過程。

前者注重“檢測”,后者注重“監(jiān)控”。

下文將從多個方面,向大家介紹政采云前端 ZooTeam 的 Web 性能優(yōu)化分析系統(tǒng)—— “百策”,是如何采集頁面性能數(shù)據(jù),并通過一系列計算加工,產(chǎn)出頁面性能報表的。

百策,取名自歷史人物魏征。魏征,字玄成。唐太宗李世民的諫臣,因敢于直諫,被稱為諍臣。因多次指出唐太宗李世民的過錯并能提出有效政策,因為被稱為 “魏百策”。

如何采集頁面性能數(shù)據(jù)

百策系統(tǒng)采用了上文提到的 “合成監(jiān)控” 的方案,得到了一組與宿主環(huán)境無關(guān)的性能數(shù)據(jù)。說到合成監(jiān)控方案,當(dāng)屬 Google Chrome 團隊出品的開源自動化分析工具 Lighthouse。

Lighthouse 的工作流程有幾個主要的步驟。部分步驟發(fā)生在瀏覽器中,其余的步驟由 Lighthouse 運行器執(zhí)行。

Lighthouse 工作原理

下面是 Lighthouse 的組成部分:

  • 驅(qū)動和 Chrome Debugging Protocol 進(jìn)行交互。

  • 收集器? 使用驅(qū)動程序收集網(wǎng)頁信息。最小化后處理。收集器的輸出結(jié)果被稱為  Artifact 。

  • 審查器將  Artifact 作為輸入,審查器會對其運行 1 個測試,然后分配通過/失敗/得分的結(jié)果。

  • 類別? 將審查的結(jié)果分組到面向用戶的報告中(如最佳實踐)。對該部分加權(quán)求和然后得出評分。

簡單來說流程就是:建立連接 -> 收集日志 -> 分析 -> 生成報告。

而我們的百策系統(tǒng)是在 Lighthouse 的基礎(chǔ)上,進(jìn)行了部分功能的定制和創(chuàng)新。

區(qū)別于 Lighthouse 的功能

1)使用 Puppeteer

Puppeteer 是一個 Node 庫,它提供了一個高級 API 來通過 DevTools 協(xié)議控制 Chromium 或 Chrome。相比較 Selenium 或是  PhantomJs ,它最大的特點就是它的  DOM 操作可以完全在內(nèi)存中進(jìn)行模擬,即在  V8 引擎中處理而不打開瀏覽器,而且  V8 引擎 Chrome 團隊在維護(hù),會擁有更好的兼容性和前景。

運行下面這段代碼就能獲取到視窗可視區(qū)域的寬高:

 
 
 
 
  1. const puppeteer = require('puppeteer'); 
  2. (async () => {  const browser = await puppeteer.launch();  const page = await browser.newPage();  await page.goto('https://example.com'); 
  3.   const dimensions = await page.evaluate(() => {    return {      width: document.documentElement.clientWidth,      height: document.documentElement.clientHeight    };  }); 
  4.   console.log('Dimensions:', dimensions); 
  5.   await browser.close();})(); 

復(fù)制代碼

Lighthouse 的方案是使用更底層的 DevTools 協(xié)議和瀏覽器交互,我們選擇 Puppeteer 是因為其更簡單,封裝的一些常用的接口足夠滿足我們的需求。

2)訪問頁面前模擬登錄

我們不僅需要檢測可匿名訪問的前臺頁面,也需要檢測登錄后才能操作的后臺頁面。所以在檢測前,我們需要增加一步登錄操作。當(dāng)然這個用戶名密碼也是可選的,當(dāng)檢測到這個 URL 需要登錄時,才會提醒用戶輸入用戶名密碼。

3)收集到數(shù)據(jù)存入數(shù)據(jù)庫

我們將每一次的檢測數(shù)據(jù)保存入庫,對數(shù)據(jù)進(jìn)行整理,獲取頁面性能變化所呈現(xiàn)的趨勢,為支持后續(xù)的統(tǒng)計分析提供數(shù)據(jù)保證。

改造之后的流程是:建立連接 -> 登錄檢測 -> 收集日志 ->  數(shù)據(jù)入庫 -> 分析 -> 生成報告

如何分析頁面性能

定制各項指標(biāo)

系統(tǒng)設(shè)計初期,我們擬定了一系列性能指標(biāo)的權(quán)重和閾值:

Lighthouse 也制定了很多性能指標(biāo),譬如:

  • uses-webp-images:采用新一代格式提供圖片

  • dom-size:DOM 節(jié)點總數(shù)

  • network-requests:頁面加載完成時的請求數(shù)

  • ……

除此之外我們定制了更多的特色指標(biāo),譬如:OSS 圖片是否使用了壓縮后綴。

由于公司的圖片都是放在阿里云 OSS 上的,阿里云 OSS 提供了很方便的優(yōu)化圖片體積的方法,就是給圖片的末尾加上類似參數(shù) ?x-oss-process=image/resize,w_187/quality,Q_75/format,webp ,理論上放在 OSS 上的圖片都需要添加壓縮后綴。為什么說是理論上呢?因為我們發(fā)現(xiàn)如果圖片上傳 OSS 前,事先經(jīng)過了其他壓縮工具的壓縮,再添加壓縮后綴后,圖片的體積變化不大,甚至?xí)霈F(xiàn)負(fù)增長。所以我們調(diào)整了評審算法,不再是簡單地檢查圖片是否增加了 OSS 后綴,而是比較當(dāng)前圖片的體積與添加 OSS 壓縮后綴后體積的差值是否超出比例。

定制檢測模型

檢測系統(tǒng)試運行一段時間后,我們發(fā)現(xiàn)并不是所有的指標(biāo)都適用于所有類型的頁面。譬如我們的前臺頁面加載圖片很多且對圖片分辨率要求較高、而后臺頁面圖片則比較少。我們既有傳統(tǒng)的后端渲染 + jQuery 類型的頁面、客戶端渲染 React 頁面、也有經(jīng)過預(yù)渲染的 Vue 頁面。

將所有類型的頁面按同一標(biāo)準(zhǔn)進(jìn)行檢測顯然不太合適,所以我們引入了 檢測模型 的概念。我們根據(jù)頁面所屬的類型,按照對應(yīng)檢測模型進(jìn)行性能檢測。一個檢測模型可以關(guān)聯(lián)多個指標(biāo),并可以配置指標(biāo)權(quán)重和級別。

權(quán)重越大扣分越多,級別分為 error 和 warning,其中 warning 級別的扣分項不算入總分中,譬如請求是否使用 Gzip 就是,因為這一項是前端無法優(yōu)化的,需要推動服務(wù)端去改進(jìn)。

計算頁面評分

提供優(yōu)化建議和趨勢

優(yōu)化建議

針對每項扣分的審查項,我們都提供了詳細(xì)的扣分原因,以及對應(yīng)的解決方案:

頁面性能趨勢變化圖

除了開發(fā)新的功能,我們還積極地對老頁面進(jìn)行重構(gòu),為了分析重構(gòu)前后的收益,我們還提供了查詢歷史數(shù)據(jù)和變化趨勢的功能:

總結(jié)

百策系統(tǒng)為前端頁面提供性能優(yōu)化分析服務(wù),結(jié)合行業(yè)方案及業(yè)務(wù)場景的差異性,完善符合公司業(yè)務(wù)情況的最佳實踐,百策系統(tǒng)制定了一套 Web 頁面性能的檢測標(biāo)準(zhǔn),通過頁面檢測及模型分析,發(fā)現(xiàn)頁面中請求耗時過長、請求資源過大、頁面結(jié)構(gòu)不合理等影響用戶體驗的問題,并針對問題提供相應(yīng)的優(yōu)化建議,幫助開發(fā)者產(chǎn)出渲染速度更快、資源占有更少、體驗更好的頁面。


當(dāng)前標(biāo)題:自動化Web性能優(yōu)化分析方案
鏈接分享:http://m.5511xx.com/article/dhpgsoi.html