跳转至

分析器

在浏览器自动化过程中捕获 Chrome DevTools 性能剖析文件。使用剖析文件来诊断页面加载缓慢、高开销的 JavaScript、布局抖动以及智能体工作流中的其他性能瓶颈。

基本用法

# Start profiling
agent-browser profiler start

# Perform actions
agent-browser navigate https://example.com
agent-browser click "#button"

# Stop and save profile
agent-browser profiler stop ./trace.json

输出的 JSON 文件可加载到 Chrome DevTools、Perfetto UI 或任何接受 Chrome Trace Event 格式的工具中。

命令

命令描述
profiler start开始记录性能剖析
profiler start --categories <list>使用自定义跟踪类别启动
profiler stop [path]停止剖析并保存到文件

跟踪类别

--categories 标志接受一个以逗号分隔的 Chrome 跟踪类别列表。

agent-browser profiler start --categories "devtools.timeline,v8.execute,blink.user_timing"

默认类别包括 devtools.timeline、v8.execute、blink、blink.user_timing、latencyInfo、renderer.scheduler、toplevel,以及多个用于详细 CPU 剖析和调用堆栈分析的 disabled-by-default-* 类别。

常用类别

类别捕获内容
devtools.timeline标准 DevTools 性能事件
v8.execute运行 JavaScript 所花费的时间
blink渲染器事件(布局、绘制、样式)
blink.user_timingperformance.mark() 和 performance.measure() 调用
latencyInfo输入到显示的延迟
disabled-by-default-v8.cpu_profiler基于采样的 JS CPU 剖析

输出格式

输出是一个采用 Chrome Trace Event 格式的 JSON 文件:

{
  "traceEvents": [
    {
      "cat": "devtools.timeline",
      "name": "RunTask",
      "ph": "X",
      "ts": 12345,
      "dur": 100,
      "pid": 1,
      "tid": 1
    }
  ],
  "metadata": {
    "clock-domain": "LINUX_CLOCK_MONOTONIC"
  }
}

metadata.clock-domain 字段反映宿主平台(Linux 或 macOS)。在 Windows 上该字段会被省略。

查看剖析文件

  • Chrome DevTools -- 性能面板 > 加载剖析文件
  • Perfetto -- https://ui.perfetto.dev/(将 JSON 文件拖放到此处)
  • Trace Viewer -- 在任何 Chromium 浏览器中打开 chrome://tracing

使用场景

  • 页面加载分析 -- 对导航进行剖析,以识别缓慢的资源、长任务或布局偏移
  • 交互剖析 -- 衡量点击、表单填写及其他用户交互的成本
  • CI 回归检查 -- 每次构建捕获剖析文件,并随时间比较跟踪数据
  • 智能体工作流优化 -- 找出智能体流程中成本最高的步骤

限制

  • 仅适用于基于 Chromium 的浏览器(Chrome、Edge)。不支持 Firefox 或 WebKit。
  • 剖析期间跟踪数据会在内存中累积(上限为 500 万个事件)。请在感兴趣的区域结束后及时停止剖析。
  • 停止时的数据收集有 30 秒超时。如果浏览器无响应,stop 命令可能会失败。
  • 如果未提供输出路径,剖析文件将保存到 agent-browser 临时目录下自动生成的路径中。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 agen/agent-browser