【问题标题】:Missing calls in the Chrome devtools js flamechartChrome devtools js 火焰图中缺少呼叫
【发布时间】:2019-12-12 05:24:31
【问题描述】:

上次我做优化时(可能是一年前),我能够在 js 火焰图中看到所有可能的函数调用。

然而,现在看来,它并没有一路走下去。

这是一个长时间运行的函数:

我期待更多的子调用,以便我可以理解为什么它运行这么长时间。

该函数如下所示:

function updateIfNeeded() {
  switch (state) {
    case 'NO_REQUEST':
      throw new Error('Unexpected draw callback.\n' + 'Please report this to <https://github.com/elm-lang/virtual-dom/issues>.');


    case 'PENDING_REQUEST':
      rAF(updateIfNeeded);
      state = 'EXTRA_REQUEST';


      var nextNode = view(nextModel);
      var patches = diff(currNode, nextNode);
      domNode = applyPatches(domNode, currNode, patches, eventNode);
      currNode = nextNode;


      return;


    case 'EXTRA_REQUEST':
      state = 'NO_REQUEST';
      return;
  }
}

它是 elm 运行时的一部分。

现在,虽然此函数可能不会调用任何其他函数,但它无法解释为什么它会运行这么长时间。

我的完整火焰图的按钮在哪里:}

【问题讨论】:

  • 我有一种感觉,太快执行的方法只是没有在火焰中采样

标签: performance google-chrome-devtools performance-testing


【解决方案1】:

性能面板在捕获设置菜单中有一个Disable JavaScript Samples 复选框。

启用此复选框后,时间线仅显示黄色占位符,以区分脚本执行时间以及布局、绘制和复合活动。 请注意启用复选框时 Cog/Settings 图标是红色的。

未选中复选框时,时间轴显示火焰图。当所有捕获选项都处于默认状态时,菜单打开时齿轮/设置图标为蓝色,关闭/折叠菜单时为灰色。

很遗憾,无法确定这就是您遇到的确切问题,因为共享的屏幕截图未描述捕获设置。 如果您将来遇到相同的行为,希望这些知识证明是有价值的。

【讨论】:

    猜你喜欢
    • 2018-11-28
    • 2018-07-08
    • 2021-12-06
    • 1970-01-01
    • 2015-03-16
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2022-08-24
    相关资源
    最近更新 更多