2017-09-01 23 views
2

我想更好地理解如何解釋鉻火焰圖表。
在下面的圖表_changeHandler顯示爲四個不同的塊。 但是我知道它只被調用一次。如何解釋鉻火焰圖表中的空白

我在這裏看到了類似的問題,聲稱這可能是一個錯誤,但是這是四年前:
What are this gap mean in Chrome devtools profile flame chart

enter image description here

問:
在這種情況下,將鉻PERF工具顯示相同函數調用的火焰圖中的間隙?

真正的問題是,它確實使整個圖失效。圖片碎片的底部但頂部是相同的功能。我無法弄清楚如何理解這一點。

使用cpu節流時,問題變得成倍地惡化。 看看第二張圖片,它與第一張圖的操作相同,但將cpu調節設置爲5倍減速。
「函數調用」下的碎片條是單個函數調用,由於某些原因,它在數百個部分中被分割。

enter image description here

+0

你知道它只被調用一次的方法是什麼? –

+0

@KayceBasques一條日誌語句。 –

+0

顯然它反映了節流的內部實現。無論如何,看起來像一個錯誤。 – wOxxOm

回答

0

的是,我們通過採樣得到的JS功能數據(不像我們通過插啓動/停止獲取本地事件)。所以內部只有4個樣本落入上述函數。我們不知道它是否執行過一次或四次或100次,但我們盡最大努力將它們粘合起來,只要樣本相鄰,它就會以一次調用的形式出現。

但有時這種邏輯神祕失敗。大多數情況下,這是因爲在對JS堆棧進行採樣時出現了一些問題(如果某些內聯函數或本機函數處於頂層,我們有時無法正確展開堆棧)。

來源:與DevTools工程師

如果你想privately submit a url/steps to reproduce,團隊可以檢查出來聊天。他們認爲他們修復了這類錯誤。

+0

謝謝你解釋!我很想提供進一步的反饋,但看起來我不允許訪問該Google文檔。我住在山景艱難,也許我可以阻止:D? –

+0

我添加了一個額外的屏幕截圖,以真正展示整個圖形如何變得有問題。 –

+0

吶喊,現在鏈接應該很好 –