SuperAPI AI 工具集

perf-fix-with-proof

前端与建站

查看项目

更新于 10-15 20:14

技能介绍

用途:以可验证的方式交付性能修复。CI 的 ci-perf-report.yaml 会将 PR 指标与基线分支对比,若在同一 PR 中同时新增 @perf 测试和修复,main 上没有该测试就没有基线,无法证明改进,因此采用堆叠 PR。

工作流:先在 origin/main 上创建工作树并编写 @perf 测试,测试放在 browser_tests/tests/performance.spec.ts(或带 @perf 标签的新文件),用 comfyPage.workflow.loadWorkflow 加载触发瓶颈的工作流,startMeasuring 后循环触发热点路径(如 comfyPage.nextFrame 或 comfyPage.page.mouse.move),stopMeasuring 记录指标。可用指标包括 styleRecalcs、layout、taskDurationMs、heapDeltaBytes 等。必要时向 browser_tests/assets/ 添加最小化测试工作流。

本地验证命令:pnpm exec playwright test --project=performance --grep "<test name>"。随后 typecheck、lint、提交并创建 PR1(仅测试),合并后 CI 在 main 上运行并保存基线;再基于 main 创建 PR2 实现修复,CI 会自动运行同测试、下载基线并发表含 Δ 的性能报告。设计上应隔离热点路径、使用足够迭代次数(空闲测试 100+ 帧、事件测试 50+ 次交互)、尽量确定性地测量计数而非耗时。

限制:基线需 PR1 先合并后才存在;测试依赖 Playwright performance 项目与 CI 工作流;docs/perf 下资料为本地文件不提交。其余未在资料中提供的细节暂未提供。