Chrome 火焰圖
對於 Web 開發者來說,Chrome 是首選開發瀏覽器之一,因其豐富的除錯工具,大大加了快 debug 效率。那麼除了常用的斷點除錯、網路請求等功能,Chrome 還提供了火焰圖分析,下面就來介紹一下基於 Chrome 瀏覽器的火焰圖除錯和使用方法。
首先開啟控制檯,切換到 Performance 皮膚,點選左上角的重新整理按鈕(當然也可以使用 record 按鈕),等頁面重新整理完畢後會生成一張火焰圖。火焰圖由 x、y 兩個座標軸組成,y軸表示呼叫堆疊,你可以簡單的理解為函式的層級呼叫,x軸為執行時間,即某個函式執行過程的時長。
下面我們用一個示例來說明,如何使用火焰圖進行除錯。
var i = 0, arr = [];
while(i < 4000000) {
arr.push(i);
i++
}
function testFor() {
var result = [];
for (var i = 0; i < arr.length; i++) {
result.push(i);
}
}
function testForEach() {
var result = [];
arr.forEach(function(i) {
result.push(i);
});
}
// 分別測試兩個方法
testForEach();
testFor();
以上程式碼可以看成是對 for 與 forEach 的效能測試,那麼以該示例為基準,我們來看下在火焰圖中是怎樣分析的。先來看下呼叫 testFor() 方法生成的火焰圖:
注意截圖左半部分的藍色框標記處,上面標明瞭 “testFor”,說明該堆疊為 testFor() 方法的呼叫,在下方的 “Summary” 處寫明瞭當前方法的總共消耗時長為 100.86ms ,方法從生成到呼叫消耗了 34.9ms,而方法內的迴圈執行了 60.0ms。
我們再來看下呼叫 testForEach() 方法生成的火焰圖:
通過檢視下方的 “Summary” 可知,testForEach() 方法總耗時為 163.77ms,方法從生成到呼叫消耗了 1.0ms,而方法內的迴圈執行了 168.8ms。
由此可得出結論,在相同環境下,普通的 for 迴圈比 forEach 效率高。當然,以上實驗並不是很準確,只是象徵性的測試,感興趣的同學可以動手嘗試一下。
好了,總結下火焰圖分析的基本要素:
1. 首先要明白火焰圖的 x軸、y軸分別代表什麼,x軸為執行時長,y軸為堆疊呼叫;
2. 然後在 y 軸的頂部部分找到呼叫時長較長的方法
a. 這裡的頂部指的是山峰的部分,即視覺的下半部分。
b. 為什麼在頂部找,是因為底部的方法為底層方法,我們自己寫的程式碼通常在業務方法裡,也就是呼叫堆疊的偏上部分
3. 結合底部 “Summary” 皮膚給出的資訊,分析當前方法是否造成了效能瓶頸。
以上就是 Chrome 火焰圖的基本使用方法,有沒有覺得很簡單呢~
注意:本文所說的火焰圖是基於瀏覽器的,而非標準火焰圖,如果想了解標準的火焰圖,可以看阮老師的文章 如何讀懂火焰圖
相關文章
- Golang火焰圖Golang
- Golang FlameGraph(火焰圖)Golang
- perf/Simpleperf 生成火焰圖
- 火焰圖(perf+ FlameGraph)
- 大話火焰圖(flame graph)
- Linux程式效能分析和火焰圖Linux
- Flame Graph 火焰圖分析 Java 效能Java
- go效能調優之火焰圖Go
- Linux下用perf生成火焰圖方法Linux
- perf及火焰圖的使用,效能分析
- systemtap和火焰圖學習筆記筆記
- Linux火焰圖效能分析文章及視訊演示Linux
- 又一款效能監控利器——火焰圖
- 使用火焰圖進行Java應用效能分析Java
- 更改chrome的圖示Chrome
- 效能工具perf的用法以及如何繪製效能火焰圖
- linux 效能調優工具perf + 火焰圖 常用命令Linux
- 容器化 RDS:藉助火焰圖定位Kubernetes效能問題
- 深度學習框架火焰圖pprof和CUDA Nsys配置指南深度學習框架
- 程式設計師精進之路:效能調優利器--火焰圖程式設計師
- 如何讀懂火焰圖?+ 例項講解程式效能優化優化
- Chrome圖片解碼與ImageDecodingHintChrome
- IntelliJ IDEA 新版釋出:支援CPU火焰圖,新增酷炫主題IntelliJIdea
- Chrome外掛:切圖壓縮工具Chrome
- CSS 火焰?不在話下CSS
- webgl實現火焰效果Web
- 【遊戲設計圖形學】模擬自然界火焰的方法遊戲設計
- Rust效能分析之測試及火焰圖,附(lru,lfu,arc)測試Rust
- 火焰之紋章系列編年史:“火焰紋章”和它的製作人們
- 純CSS漸變繪製 Chrome 圖示CSSChrome
- chrome-網頁gif截圖外掛Chrome網頁
- 跨越可觀測性鴻溝|高手們都在用的“火焰圖”是什麼
- Chrome 獲取網頁顏色(文字、圖片)Chrome網頁
- 煙霧火焰識別系統
- linux puppeteer 截圖提示缺少chrome-linux/chrome error while loading shared libraries: libXdamage.so.1LinuxChromeErrorWhile
- 多圖預警,種草 DevTools 新特性( Chrome 80 )devChrome
- Chrome下多屏、長頁面或者元素截圖Chrome
- ShaderWeaver使用教程5-火焰製作