javascript - 如何解读Chrome的JS分析时间轴?

标签 javascript google-chrome-devtools

我已经最小化并匿名化了这个问题中的函数名称/调用(并相应地修饰了图像)。回答这个问题时不应该关心实际名称和调用堆栈深度。

我正在尝试通过 Google Chrome 的时间轴找到 Web 应用程序中的瓶颈。但是,我不确定如何解释记录时间线后显示的数据。

例如,我正在使用以下函数:

function obj.a = function (x, y) {
    console.log('a(' + x + ', ' + y + ')');
    return x.getNested().b(y);
};

对其进行分析后,火焰图和事件日志使其看起来像是 console.logba 多次调用。例如,事件日志如下所示:

event log

a的其他调用似乎(随机?)具有更多嵌套调用 blog .

官方文档如How to use the timeline tool只提供无用的陈述,例如

When the JS profiler is enabled, your flame chart shows every JavaScript function that was called.

那么,如何读取和解释时间轴面板上显示的 JS 分析信息,以找出哪个函数调用需要多少时间?

最佳答案

这是任何采样分析器的产物。采样分析器按以下方式工作,它定期获取程序堆栈样本,称为采样间隔(在 Chrome 中为 0.1 毫秒或 1 毫秒)。

采样分析器的一个主要缺点是它看不到样本之间程序发生了什么。例如。它无法检测所有函数进入和退出事件。然而,它擅长提供函数执行时间的聚合统计 View 。

在您的示例中,它可能在采样之间退出并进入“a”函数,其中“b”和“log”是顶部帧。

关于javascript - 如何解读Chrome的JS分析时间轴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38055218/

相关文章:

google-chrome-devtools - Chrome开发者工具中有切换源文件的键盘快捷键吗?

javascript - 如何在 JavaScript IF 语句中使用 OR 条件?

javascript - 在 Angular 2 应用程序中注销之前检索 URL

typescript - 在 chrome devtools 中,在我所有的 tsx 源文件中,语法高亮和智能感知不再起作用

css - 在 Google Chrome 开发者工具中查看 via inspector 添加的 CSS

google-chrome-devtools - PWA manifest.json - "theme_color"和 "background_color"不起作用,启动屏幕未在 Android 设备上显示

Django 开发服务器和 MIME 类型

javascript - Angular 5 : read local json file

javascript - 带有 Protractor 的 Jasmine 自定义匹配器,用于检查浏览器标题

javascript - 延迟显示 "no Javascript"警告?