萌新看大佬系列第二集 十分鐘上手chrome性能分析模板前端
學習文章:juejin.im/post/5b6d45… 做者:薄荷前端git
性能你都去哪兒了? 俗話說知己知彼百戰不殆,咱們要了解性能是怎麼分配的,才能作好性能優化塞,性能分析模板告訴你答案! github
從加載,腳本,渲染,paint(繪製)其餘,空閒,經過這種餅狀圖方式,咱們對性能一目瞭然。chrome
不用白不用。瀏覽器
進入隱身模式 ctrl+shift+N性能優化
打開 performance 選項卡網絡
點擊圖中的齒輪,爲了模擬移動端,咱們根據電腦性能選擇相應的cpu節流。函數
打開截圖功能post
此外若是還勾選了memory根據變化還能夠看到大體的垃圾回收週期,以及有無明顯的內存泄露。性能
咱們先獲取優化前的各類數據分析:先點擊左上角 record 圓點記錄優化前版本的運行時性能,過一段時間以後點擊中止。 圓點旁邊的刷新樣的標誌(大佬叫圓形箭頭,hhh)是用於 loading 的性能分析的按鈕。
圖片的右邊標有:FPS;CPU;NET
紅色橫條表示幀率太低已經影響了用戶體驗,一般狀況下綠條越高,幀率越高,體驗越好.當幀率不影響使用的時候橫條是不會出現的。
cpu對應下方summary的餅圖,哪塊大,哪塊對應的cpu消耗也就越大。
從本圖中不難看出花在頁面渲染的cpu消耗是最多的。
在FPS,CPU,NET上 左右移動鼠標,就能夠看到各個時間點的截圖,這在分析動畫執行的各個階段,以及了loading的各個階段的時候尤爲有用.
圖片左邊的部分:
若是記錄期間包含網絡請求那麼在 frame 上面還有一欄 Network,會用不一樣的顏色表示請求不一樣的資源
frames區域,鼠標點上去會顯示當前的幀率
在記錄過程當中按快捷鍵cmd + shift + p 而後輸入 show rendering (打開實時查看幀率的面板),能夠看到實時的幀率變化
main 表明主線程, 一段橫條表明執行一個事件(函數),長度越長,花費的時間越多; 豎向表明調用棧.若是在這些橫條中右上角是紅色的就表示在該段代碼執行過程當中可能存在性能問題.
咱們能夠看到上圖中不少黃色橫條的右上角是紅色的,點擊展開 main中的 這一部分: 點擊 animation frame fired 事件,能夠在下面看到相關信息. 而且能夠定位到 source 面板中的相關代碼.根據定位到的代碼段,閱讀代碼咱們能夠發現,問題是出在選中的藍色背景的這句代碼中
具體出了什麼問題,不作討論。 重繪與重排也能夠看看谷歌官方文檔