分析器
在浏览器自动化过程中捕获 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 跟踪类别列表。
默认类别包括 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 秒超时。如果浏览器无响应,stop 命令可能会失败。
- 如果未提供输出路径,剖析文件将保存到 agent-browser 临时目录下自动生成的路径中。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 agen/agent-browser