Chrome性能开发工具中的“任务”不明确

w41d8nur  于 2022-12-06  发布在  Go
关注(0)|答案(2)|浏览(143)

Chrome浏览器在浏览我的网页时会出现巨大的延迟。我正在使用DevTools Performance 标签来尝试找到我认为是JavaScript代码中某个地方的罪魁祸首。
下面的屏幕截图显示了使用DevTools记录的配置文件。对于配置文件中显示的一些“任务”,我可以看到任务正在做什么的细节(例如,8700毫秒和9200毫秒之间的任务是GC),但对于其他任务,没有任何细节,就像我在屏幕截图中突出显示的两个任务。我如何判断这些任务正在做什么?

5uzkadbs

5uzkadbs1#

您可以使用JavaScript的性能观察器来了解Web应用程序中的性能瓶颈问题。

精确代码-

const observer = new PerformanceObserver((list) => {
    console.log('Long Task detected! 🚩️');
    const entries = list.getEntries();
    console.log(entries);
});

observer.observe({entryTypes: ['longtask']});

更多详情here

n3ipq98p

n3ipq98p2#

我遇到了一个类似的问题,我有一个长的,不透明的“任务”,需要几秒钟,没有进一步的信息,在开发工具。

一个Chrome开发人员向我推荐了Perfetto(编辑:或者您可以访问chrome://tracing中的内置类似工具)。Perfetto可以让您记录Chrome内部的痕迹。在我的案例中,我怀疑这与GPU有关,所以我启用了所有的gpu* 开关:

并开始跟踪。在我在另一个选项卡中重现该问题后,我返回到Perfetto跟踪。我发现这些“ThreadControllerImpl::RunTask”切片似乎与神秘系统任务的持续时间有关。

有益的Perfetto有一个箭头,从那个任务到另一组“切片”。

而每一个都被归类为“WebAudio”。从中我了解到我对AudioContext的使用很可能是罪魁祸首,事实上,如果我禁用页面上的所有音频,问题就会消失。
x1c4d 1x指令集
希望这个例子对其他试图解决Chrome中不透明的“系统任务”问题的人有所说明。

相关问题