性能分析器
在浏览器自动化过程中捕获 Chrome DevTools 性能分析数据。 使用这些分析数据来诊断页面加载缓慢、昂贵的 JavaScript 执行、布局抖动以及其他在智能体工作流中的性能瓶颈。
基本用法
# 开始分析
agent-browser profiler start
# 执行操作
agent-browser navigate https://example.com
agent-browser click "#button"
# 停止并保存分析数据
agent-browser profiler stop ./trace.json输出的 JSON 文件可被加载到 Chrome DevTools、Perfetto UI,或任何支持 Chrome Trace Event 格式的工具中。
命令
| 命令 | 说明 |
|---|---|
profiler start | 开始记录性能分析数据 |
profiler start --categories <列表> | 使用自定义的跟踪类别启动 |
profiler stop [路径] | 停止分析并将数据保存到文件 |
跟踪类别
--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_timing | performance.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 秒超时。如果浏览器无响应,停止命令可能失败。
- 当未提供输出路径时,分析数据将保存至 agent-browser 临时目录下的自动生成路径中。