上次我做优化时(可能是一年前),我能够看到js flamechart中所有可能的函数调用。
然而,现在它似乎并没有走完全程。
下面是一个长时间运行的函数:

我期待着更多的子调用,这样我就可以理解为什么它运行了这么长时间。
下面是该函数的外观:
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运行时的一部分。
现在,虽然这个函数可能不会调用任何其他函数,但它不能解释为什么它运行了这么长时间。
我的完整flamechart的按钮在哪里:}
发布于 2019-12-12 05:24:31
“性能”面板的“捕捉设置”菜单中有一个Disable JavaScript Samples复选框。
启用此复选框后,时间线仅显示黄色占位符,以区分脚本执行时间、布局、绘制和复合活动。

请注意,启用该复选框后,Cog/Settings图标是如何显示为红色的。
如果未选中该复选框,时间线将显示火焰图表。当所有捕获选项都处于默认状态时,当菜单打开时,Cog/Settings图标为蓝色,当菜单关闭/折叠时,图标为灰色。

不幸的是,不能确定这就是你遇到的问题,因为共享的屏幕截图没有描述捕获设置。希望这些知识被证明是有价值的,如果你在未来遇到同样的行为。
https://stackoverflow.com/questions/57230279
复制相似问题