关于 trace-audit
trace-audit 是用于分析 Chrome DevTools Performance 跟踪文件的审计技能,面向需要定位网页性能问题的开发者。它按多类检测规则汇总事件,并生成包含严重程度与时间热点的报告。
主要功能
- 01校验 Chrome DevTools 跟踪文件
- 02检测 13 类性能问题
- 03统计事件并评定严重程度
- 04定位时间线问题热点
- 05生成可执行的审计报告
适用场景
- 01排查长任务和强制回流
- 02分析 CLS、INP 与网络错误
- 03定位性能问题集中的时间段
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ joyco-studio/ skills --skill trace-audit安装后在 Claude Code 中输入/trace-audit确认已加载。
附带文件detection-heuristics.mdreport-format.md
详细介绍
Chrome DevTools Trace 审计
分析 Chrome DevTools Performance 跟踪文件,并生成一份全面的性能审计报告。
用法
/trace-audit <path-to-trace.json>
参数是 Chrome DevTools 跟踪 JSON 文件的绝对路径(从 Performance 面板导出)。
工作流
按顺序执行以下步骤。在注明的地方使用并行工具调用。
步骤 1 — 验证跟踪文件
使用 Read 工具读取文件的前 100 行。通过检查以下内容,确认这是有效的 Chrome DevTools 跟踪文件:
- 顶层包含
traceEvents数组,或文件以[开头,是一个裸 JSON 数组 - 事件对象包含
name、cat、ph、ts字段 - 存在
__metadata或TracingStartedInBrowser事件
如果验证失败,告知用户这看起来不是 Chrome DevTools 跟踪文件,然后停止。
步骤 2 — 提取元数据
使用 Grep 从跟踪文件中提取以下内容(并行运行):
- 网站 URL — 搜索
TracingStartedInBrowser、navigationStart或FrameCommittedInBrowser,并在args中查找 URL - 进程名称 — 搜索
process_name或thread_name,以识别渲染器、浏览器和 GPU 进程 - 跟踪时间范围 — 搜索第一个和最后一个
"ts":值,以计算跟踪时长
步骤 3 — 运行检测
参考 detection-heuristics.md 了解完整的模式和阈值。使用 Grep 并行运行所有检测类别。对于每个类别:
- 使用指定的搜索模式搜索跟踪文件
- 收集匹配行;需要时附带周边上下文(
-C 1或-C 2) - 统计匹配项,并从匹配的 JSON 中提取时长和数值
检测类别:
- 长任务(
RunTask,dur > 50000) - 布局抖动(
InvalidateLayout→Layout配对) - 强制回流(带
stackTrace的Layout事件) - rAF 定时器循环(
RequestAnimationFrame频率) - 样式重计算风暴(dur > 5000 的
UpdateLayoutTree) - 绘制风暴(dur > 3000 的
Paint事件) - GC 压力(
MajorGC/V8.GC_MARK_COMPACTOR) - CLS(
LayoutShift累积分数) - INP(
EventTiming最大时长) - 网络错误(
ResourceReceiveResponse,且 statusCode >= 400) - 冗余请求(同一 URL 被多次请求)
- 脚本求值(dur > 50000 的
EvaluateScript/CompileScript) - 长动画帧(
LoAF/LongAnimationFrame)
步骤 4 — 汇总发现
对于每个检测类别:
- 计算标记事件总数
- 提取最严重的问题(最大时长或最高分数)
- 根据
detection-heuristics.md中的阈值划分严重程度:严重(红色)或警告(黄色) - 跳过没有发现问题的类别
步骤 5 — 识别时间线热点
按时间戳将标记事件归入时间窗口(例如,每 500ms 一个窗口)。找出多个问题类别重叠的窗口——这些是热点范围,代表跟踪文件中问题最严重的部分。
步骤 6 — 生成报告
按照 report-format.md 中定义的结构输出报告。报告应当:
- 可执行——每个问题都关联到具体的修复方案
- 易于浏览——使用表格、严重程度徽章和清晰的标题
- 完整——涵盖所有类别,即使只需说明“未发现问题”
评论
支持 Markdown