瀏覽器性能檢測——Performance、Lighthouse


Performance

PerformanceChrome 開發者工具中的一個功能,用於記錄網頁從初始化到運行時的所有性能指標。

注意!!!

使用 Performance 前,我們最好打開 Chrome 的無痕模式。因為 Chrome 上一般有着大量的插件,會或多或少的影響頁面的性能,所以我們關掉這個來避免對頁面性能的影響

接下來,我們點擊左上角的 Record(小圓點)按鈕,Performance 進入 Record 階段,從此刻開始,它會記錄用戶的交互以及這些交互對頁面性能數據的影響。當交互完成后,點擊 Stop 來停止 RecordPerformance。也可以點擊小圓點右側的按鈕來記錄頁面記載過程的性能。

生成的 Performance 性能報告,我們先看頂部的三個數據:FPSCPU 以及 NET

FPS:主要和動畫性能有關,代表每秒幀數。圖表中的綠色長條越高,說明FPS越高,用戶體驗越好。如果其中有紅色長條,代表着這部分幀數有卡頓,需要優化

CPU:和底部的 Summary 對應,顯示了頁面加載過程中,各階段對 CPU 的占用時間,占用時間越多,代表該階段越需要優化。在 Performance 中,該部分是最需要關注的指標之一。

CPU 資源面積圖顏色划分:
顏色 執行內容
藍色(Loading) 網絡通信和 HTML 解析
黃色(Scripting) JavaScript 執行
紫色(Rendering) 樣式計算和布局,即重排
綠色(Painting) 更改外觀而不會影響布局,重繪
灰色(other) 其它事件花費的時間
白色(Idle) 空閑時間

NET:每條彩色橫杠表示一種資源。橫杠越長,檢索資源所需的時間越長。 每個橫杠的淺色部分表示等待時間(從請求資源到第一個字節下載完成的時間) 深色部分表示傳輸時間(下載第一個和最后一個字節之間的時間)

  • HTML:藍色
  • CSS:紫色
  • JS:黃色
  • 圖片:綠色

中間的 Main

由於 Main 的圖表長得像一團團倒立的火焰,所以,我們將其稱為火焰圖。它展現了主線程在 Record 過程中做的所有事情,包括:Loading、Scripting、Rendering、Painting 等等。火焰圖的橫軸代表着時間,縱軸代表着調用堆棧。每一個長條代表執行了一個事件或函數,長條的長度代表着耗時的長短,如果某個長條右上角是紅色的則表示該函數存在性能問題,需要重點關注。

顏色 意義
藍線 DOMContentLoaded 事件
綠線FP 首次繪制的時間
FCP 第一次豐富內容的繪圖
FMP 第一次有意義的繪圖
LCP 最大區域內容繪制
紅線 load 事件

DOMContentLoaded: 就是 dom 內容加載完畢。 那什么是 dom 內容加載完畢呢?打開一個網頁當輸入一個 URL,頁面的展示首先是空白的,然后過一會,頁面會展示出內容,但是頁面的有些資源比如說圖片資源還無法看到,此時頁面是可以正常的交互,過一段時間后,圖片才完成顯示在頁面。從頁面空白到展示出頁面內容,會觸發 DOMContentLoaded 事件。而這段時間就是 HTML 文檔被加載和解析完成。

load: 頁面上所有的資源(圖片,音頻,視頻等)被加載以后才會觸發 load 事件,簡單來說,頁面的 load 事件會在 DOMContentLoaded 被觸發之后才觸發。

最下面的 Summary

  • 藍色(Loading):網絡通信和HTML解析
  • 黃色(Scripting):JavaScript執行
  • 紫色(Rendering):樣式計算和布局,即重排
  • 綠色(Painting):重繪
  • 灰色(System):其它事件花費的時間
  • 白色(Idle):空閑時間

Performance monitor

看起來,Performance 提供的性能監測功能已經較為完備,但是,它有兩個問題:

  • 數據缺少實時性
  • 數據面板過於復雜,不夠直觀

為了解決這兩個問題,Chrome 提供了 Performance monitor 功能,以實時直觀的數據展示頁面性能。

Lighthouse(Audits) 面板

來自 Google 的描述: Lighthouse 是一個開源的自動化工具,用於改進網絡應用的質量。 您可以將其作為一個 Chrome 擴展程序運行,或從命令行運行。 您為 Lighthouse 提供一個您要審查的網址,它將針對此頁面運行一連串的測試,然后生成一個有關頁面性能的報告,會對頁面的加載進行分析,然后給出提高頁面性能的建議

  • Performance 性能
  • accessibility 無障礙使用
  • Best Practice 用戶體驗
  • SEO SEO 優化
  • Progressive Web App 頁對於 PWA 的兼容性

參考博客:

脫離996,Chrome DevTools 面板全攻略!!!(收藏)

Chrome 性能監測


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM