本文主要記錄Chrome Dev Tools 關於性能調優的使用方法。基礎用法請參見基礎篇web
loading
相對,是running
的性能,找出頁面性能瓶頸,建議:
隱身模式下
使用.Capture Settings
->20x slowdown
(for mobile)Save profile
/ Load profile
Record
結果分析:
FPS
出現紅色時,說明丟幀嚴重,綠色越高,性能越好.CPU
與底部的Summary
相呼應,當該欄被顏色填滿時,說明CPU
滿負荷.FPS
,CPU
,NET
上面時,能夠看到放大的screenshotFrames
,查看FPS,不該高於60.Frames
中,點擊某一幀,Summary
中顯示Screenshot,點擊可放大;此時若開啓Enable advanced paint instrumentation
,會顯示Layer
Interactions
:用戶交互事件Cmd + Shift + p
->show rendering
,顯示Rendering
TabOverview
上點擊、按住並移動鼠標,來聚焦某一個時間段.(或者使用W A S D鍵)bottleneck
Summary
中,Rendering
是否過多->減小Rendiering
Memory
勾選後顯示內存使用狀況Network
,左側線:request sent以前的事件;淺色:request sent,waiting;深色:content download;右側線:等待主進程.Main
,x
:時間,越寬說明運行時間越長;y
:callstack.Main
中,Shift+鼠標選擇區域,能夠看到具體時間Main
中,顏色隨機分配,深黃色Scriping
,紫色Rendering
,Main
中,事件右上角紅色三角,說明極可能有性能問題.Main
中的事件,Summary
中會顯示詳情,reveal
跳轉至相應codeconsole
旁邊有rendering
.Paint Flashing
layer borders
scrolling performance issues
Summary
跳轉至對應代碼,能夠發現右側又事件,指示出強制重繪的事件.Show Heaviest Stack
call tree
查找哪個root activity
消耗了最多的時間bottom up
展現直接消耗時間的事件event log
按調用順序展現,filter
選擇事件類型Memory
列表示原生內存,JavaScript Memory
表示JS堆。Shadow Size
。Retained Size
。Distance
是指該內存節點與GC 根之間的距離。若是相同類型的幾乎全部對象的距離都相同,只有少數對象的距離偏大,則有必要進行調查。Take Heap Snapshot
,而後點擊Take Heap Snapshot
按鈕。Summary
視圖的 Class filter 文本框中鍵入 Detached
,搜索已分離的 DOM 樹。Record Allocation Timeline
單選按鈕,按Start
按鈕,執行您懷疑致使內存泄漏的操做。完成後,按stop recording
按鈕。Chart
。分配時間線上的藍色豎線表示新內存分配。start
按鈕,執行指望觀察的操做,完成後點擊stop
。Timeline
記錄中,JS 堆或節點計數圖表頻繁上升和降低指示存在頻繁的垃圾回收。