Chrome分析器 - 为什么功能有时会停止一段时间?

kkk*_*kkk 6 javascript profiler profiling google-chrome google-chrome-devtools

以下是Chrome Performance Devtools捕获的网络执行情况:

在此输入图像描述

我注意到在执行期间,当我的Web功能停止时,函数将被停止多次.Chrome执行一些RegExp操作(如图所示).我不明白这是什么,为什么会发生.请帮忙解释一下,谢谢.

更新:这是一个也以相同方式执行的函数:

在此输入图像描述

Lou*_*uis 5

你描述的是什么

您描述问题的方式听起来就像您认为JavaScript虚拟机在执行时(即在它们返回之前)将函数置于保持状态(停止它们)以执行其他操作然后恢复功能.

你正在展示的图像并不意味着对我而言.

我所看到的

VM执行:

  • callback,哪个电话
  • 一些函数,其名称由工具提示隐藏,调用:
  • fireWith,这叫:
  • fire,这叫:
  • 等等...

然后最深的函数返回,并且调用它的那个返回,依此类推,直到fire返回,fireWith返回,我们无法读取的名称返回的函数callback返回.

然后VM运行一个RegExp函数,它调用一个名为callbackagain 的函数,整个事情重新开始.换句话说,第二列callback和其余部分是函数的新调用.这些函数不是"停止[ping]一段时间":它们被多次调用.

我一直在图书馆看到这种情况来回应事件.它们通常会遍历事件处理程序来调用它们.给定一个足够复杂的库,有相当数量的粘合代码可能位于调用处理程序的循环和自定义代码之间,因此在分析中会出现大量重复调用.