用途:用于排查浏览器端性能问题,如卡顿、掉帧、滚动或点击/输入响应慢、INP 差、LCP 慢、布局偏移(CLS)、动画卡顿等。不适用于后端性能、内存泄漏、包体积回归或与计时无关的逻辑缺陷。
主要能力:以 LoAF 为主信号,单条记录即可把慢帧归因到具体 sourceURL、sourceFunctionName、sourceCharPosition、invokerType,并给出 forcedStyleAndLayoutDuration(同步回流)、pauseDuration(同步 XHR/alert)、blockingDuration。必要时补充 event、layout-shift、largest-contentful-paint、longtask、paint 观察器。
使用方式:先启动日志服务 npx debug-agent@latest --json --daemon,取得 endpoint、logPath、sessionId;将 LoAF 观察器 IIFE 作为 <head> 首个脚本或 SPA 入口顶部注入,替换 ENDPOINT 与 SESSION_ID,保留 buffered: true 与 keepalive: true。每次运行前用删除工具或 curl -X DELETE <endpoint> 清空日志,复现后读取 logPath 的 NDJSON 行分析。先看 LoAF,再按需看次要信号,结论需引用具体条目;修复需 100% 把握,保留埋点并用 runId="post-fix" 标记验证,成功且用户确认后再移除 #region debug log 区块。
限制:LoAF 仅 Chromium 支持,建议在 Chrome/Edge ≥123 复现;不得记录 DOM 文本、表单值、Cookie、令牌或含 PII 的 URL;不要用 performance.now() 手工计时替代 LoAF;不要为“修复”而把工作包进 setTimeout 造成卡顿后移。