簡體   English   中英

Chrome開發者工具Profiler顯示與console.log不同數量的方法調用

[英]Chrome Developer Tools Profiler showing different number of method calls vs console.log

我正在使用Chrome中Dev Tools的“個人檔案”標簽。 在配置文件中,我看到函數resizeDocument的條目被調用了6次以上,值為113ms,17ms,45ms等。相同的行號,相同的文件,相同的一切。

當我從resizeDocument函數內的控制台登錄時,我只得到一個條目。 到底是怎么回事?

在此輸入圖像描述

在此輸入圖像描述

在此輸入圖像描述

在此輸入圖像描述

原因是chrome中的CPU分析器的性質。 它是一個抽樣分析器。 因此,它收集正在運行的程序的調用堆棧(示例),並使用它們來重建圖表視圖中的條形圖。

例如,如果探查器在每個樣本中收集了1000個樣本,其中一個調用幀用於函數“foo”,那么您將看到1s長條,其中包含“foo”名稱。

可能會發生分析器無法收集下一個堆棧跟蹤的情況。 例如,當函數'foo'在樣本之前調用函數'bar'時,探測器嘗試從堆棧中收集調用幀時會發生這種情況。 此時,在調用指令之后,函數'bar'在堆棧上構造'foo'的調用幀。 因此,堆棧上的調用幀目前處於無效狀態。 探查器檢測到並丟棄樣本。 結果,在堆棧軌跡的序列中發生間隙。

在這種情況下,將構造兩個不同的“foo”條。

當探查器無法收集調用堆棧時,還有一些其他原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM