sen*_*ett 4 javascript google-chrome performancecounter google-chrome-devtools
我在 Chrome 中使用开发工具的配置文件选项卡。在配置文件中,我看到一个resizeDocument名为 6+ 次的函数条目,值为 113ms、17ms、45ms 等。相同的行号、相同的文件、相同的所有内容。
当我从控制台内部resizeDocument函数登录时,我只能得到一个条目。到底是怎么回事?




其原因是 chrome 中 CPU 分析器的性质。它是一个采样分析器。因此,它收集正在运行的程序的调用堆栈(样本),并使用它们来重建图表视图中的条形图。
例如,如果分析器收集了 1000 个样本,每个样本中的函数“foo”有一个调用帧,那么您将看到 1s 长的条形图,其中包含“foo”名称。
分析器可能无法收集下一个堆栈跟踪。例如,当分析器试图在函数 'foo' 在样本之前调用函数 'bar' 时尝试从堆栈中收集调用帧时,就会发生这种情况。此时,就在 call 指令之后,函数 'bar' 在堆栈上为 'foo' 构造调用帧。所以此时栈上的调用帧处于无效状态。探查器检测到并丢弃样本。结果,堆栈跟踪序列中出现了一个间隙。
在这种情况下,将构建两个不同的 'foo' 条。
当分析器无法收集调用堆栈时,还有其他一些原因。
| 归档时间: | 
 | 
| 查看次数: | 914 次 | 
| 最近记录: |