chrome-performance頁面性能分析使用教程

運行時性能表現(runtime performance)指的是當你的頁面在瀏覽器運行時的性能表現,而不是在下載頁面的時候的表現。這篇指南將會告訴你怎麼用Chrome DevTools Performance功能去分析運行時性能表現。在RAIL性能評估模型下,你能夠在這篇指南中能夠學到怎麼去用這個performance功能去分析Response, Animation, 以及 Idle 這三個性能指標。瀏覽器

 

1、模擬移動設備的CPU網絡

移動設備的CPU通常比臺式機和筆記本弱不少。當你想分析頁面的時候,能夠用CPU控制器(CPU Throttling)來模擬移動端設備CPU。異步

1在DevTools中,點擊 Performance 的 tab。佈局

2確保 Screenshots checkbox 被選中性能

3點擊 Capture Settings(⚙️)按鈕,DevTools會展現不少設置,來模擬各類情況動畫

4對於模擬CPU,選擇2x slowdown,因而Devtools就開始模擬兩倍低速CPUlua

 

5在DevTools中,點擊 Record 。這時候Devtools就開始錄製各類性能指標spa

6進行快速操做,點擊stop,處理數據,而後顯示性能報告code

 

2、分析報告orm

FPS(frames per second)是用來分析動畫的一個主要性能指標。讓頁面效果可以達到>=60fps(幀)/s的刷新頻率以免出現卡頓。能保持在60的FPS的話,那麼用戶體驗就是不錯的。

 

爲何是60fps?

咱們的目標是保證頁面要有高於每秒60fps(幀)的刷新頻率,這和目前大多數顯示器的刷新率相吻合(60Hz)。若是網頁動畫可以作到每秒60幀,就會跟顯示器同步刷新,達到最佳的視覺效果。這意味着,一秒以內進行60次從新渲染,每次從新渲染的時間不能超過16.66毫秒。

 

3、界面介紹

 

從上到下分別爲4個區域 
1:具體條,包含錄製,刷新頁面分析,清除結果等一系列操做 
2:overview總覽圖,高度歸納隨時間線的變更,包括FPS,CPU,NET 
3:火焰圖,從不一樣的角度分析框選區域 。例如:Network,Frames, Interactions, Main等 
4:總結區域:精確到毫秒級的分析,以及按調用層級,事件分類的整理

 

 

【Overview】

  Overview 窗格包含如下三個圖表:

  一、FPS。每秒幀數。綠色豎線越高,FPS 越高。 FPS 圖表上的紅色塊表示長時間幀,極可能會出現卡頓

  二、CPU。 CPU 資源。此面積圖指示消耗 CPU 資源的事件類型

  三、NET。每條彩色橫槓表示一種資源。橫槓越長,檢索資源所需的時間越長。 每一個橫槓的淺色部分表示等待時間(從請求資源到第一個字節下載完成的時間)

  能夠放大顯示一部分記錄,以便簡化分析。使用 Overview 窗格能夠放大顯示一部分記錄。 放大後,火焰圖會自動縮放以匹配同一部分

  選擇部分後,可使用 W、A、S 和 D 鍵調整您的選擇。 W 和 S 分別表明放大和縮小。 A 和 D 分別表明左移和右移

【火焰圖】

  在火焰圖上看到一到三條垂直的虛線。藍線表明 DOMContentLoaded 事件。 綠線表明首次繪製的時間。 紅線表明 load 事件

  在火焰圖中選擇事件時,Details 窗格會顯示與事件相關的其餘信息

 

【總結區域】

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

 

Loading事件

事件

描述

Parse HTML

瀏覽器執行HTML解析

Finish Loading

網絡請求完畢事件

Receive Data

請求的響應數據到達事件,若是響應數據很大(拆包),可能會屢次觸發該事件

Receive Response

響應頭報文到達時觸發

Send Request

發送網絡請求時觸發

 

 

 

 

 

 

 

 

 

Scripting事件

事件

描述

Animation Frame Fired

一個定義好的動畫幀發生並開始回調處理時觸發

Cancel Animation Frame

取消一個動畫幀時觸發

GC Event

垃圾回收時觸發

DOMContentLoaded

當頁面中的DOM內容加載並解析完畢時觸發

Evaluate Script

A script was evaluated.

Event

js事件

Function Call

只有當瀏覽器進入到js引擎中時觸發

Install Timer

建立計時器(調用setTimeout()和setInterval())時觸發

Request Animation Frame

A requestAnimationFrame() call scheduled a new frame

Remove Timer

當清除一個計時器時觸發

Time

調用console.time()觸發

Time End

調用console.timeEnd()觸發

Timer Fired

定時器激活回調後觸發

XHR Ready State Change

當一個異步請求爲就緒狀態後觸發

XHR Load

當一個異步請求完成加載後觸發

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Rendering事件

事件

描述

Invalidate layout

當DOM更改致使頁面佈局失效時觸發

Layout

頁面佈局計算執行時觸發

Recalculate style

Chrome從新計算元素樣式時觸發

Scroll

內嵌的視窗滾動時觸發

 

 

 

 

 

 

 

Painting事件

事件

描述

Composite Layers

Chrome的渲染引擎完成圖片層合併時觸發

Image Decode

一個圖片資源完成解碼後觸發

Image Resize

一個圖片被修改尺寸後觸發

Paint

合併後的層被繪製到對應顯示區域後觸發

相關文章
相關標籤/搜索