Capture audit evidence, performance baseline, and U1–U7 remediation plan without business code changes so the work can land on dev before U2. Co-authored-by: Cursor <cursoragent@cursor.com>
3.5 KiB
3.5 KiB
title, status, created, updated
| title | status | created | updated |
|---|---|---|---|
| 首次加载性能诊断测量(非优化验收) | done | 2026-09-17 | 2026-09-17 |
诊断测量报告
范围与结论
只读未登录浏览器基线、静态资源响应与受控网络实验完成;没有业务代码修改,不是优化 PASS 或完整重启验收。用户补充现象为 3100/8080/8081 系统重启后第一次进入约十数秒。
审计 包含数值、因果链、源码定位和限制;方案 含重启矩阵、性能预算与治理回归。
环境与步骤
- 2026-09-17;源码读取主仓
feature/rdev-core@52f0fbc,文档 worktree 基线dev@d0ef696。 - 实际 app-dev image
sha256:355ec1af39c5233ac7e710c6c4300779681edd96d5da85258a9dde71a1698af2;app-testsha256:ee7df995c59eb0faf8e26160113d36fcdb57844b4e96989709f8b6edc2f00395。未证明这些镜像与源码 commit 相同。 - 主 JS hash 分别为 8080
index-BLnmtk_3.js、8081index-Dk3TnkZv.js、8000index-BT80OB_W.js。 - 浏览器采用现有
mcr.microsoft.com/playwright:v1.63.0-noble、headless Chromium;不登录、不调用写接口、无截图/正文保存。基线未加 CPU 限速。 - 宿主 Playwright 因缺 libatk 启动失败;隔离浏览器容器成功,不安装/修改宿主库。
- 新 context 冷缓存 → 同 context 第二次导航;页面 input 可见后等 1.5 秒采集 Resource Timing。每场景 n=1,未报告分位数。
- 受控场景包括 CDP 10/2 Mbps + 80ms、字体立即失败、字体延迟 5 秒后失败。CDP document RTT 未精确达到设置值,因此是带宽敏感性实验,不是公网仿真认证。
- 3199 隔离 Vite 使用主仓源码、独立
/tmp空 cacheDir,不清理原有 3100 依赖缓存,不更改 Vite 配置;结束后停止临时实例。 - 日志仅提取启动时间和固定事件标记,不保存原始日志。现有 app start→打印监听 dev 166 ms/test 142 ms,不等同真正 ready 或整机重启耗时。
结果
| 检查 | 结果 | 限制 |
|---|---|---|
| 三容器主 JS 未压缩 | 确认,约 2.80–2.82 MB | 用户上游代理压缩未知 |
| 8080 冷/热差异 | 662/62 ms | n=1,本机未登录 |
| 带宽敏感性 | 10 Mbps 2.64 s;2 Mbps 11.78 s | 模拟,不是用户网络 |
| 外部 CSS 阻塞 | 人为延迟5s → 登录5.16s | 不能称自然延迟5s |
| 3100资源成本 | 207 请求/12.24 MB | 当时 Vite 服务已运行 |
| 隔离 Vite 空缓存 | 首访1.58s/再次171ms,首访14.45MB | 启动早于浏览器连接,非完整冷启动总耗时 |
| 登录态/整机重启 | 未覆盖 | U1/U7必须补齐 |
| 功能/真实PI/优化收益验收 | 未执行 | 本轮无实现 |
原始数据与复现
证据目录:assets。browser.json、controlled.json、vite-cold.json 为浏览器结果;assets.json 为静态头/体积摘要。对应 *.cjs 是诊断探针,不是业务测试。
复现普通浏览器基线可使用已有 Playwright 镜像,挂载本仓到 /repo:ro、证据临时输出目录到 /out,执行 /out/probe.cjs。脚本假设 /repo/web/node_modules/playwright 存在;运行前复制脚本到临时输出目录,不覆盖既有证据。字体拦截会禁用该 context 缓存,不得拿其 warm 结果与正常 warm 作性能比较。
交付状态
方案及证据仅在独立本地 worktree,未合 dev、未 push;无共享服务重启/镜像重建。后续实施按 CURRENT 认领与集成槽规约执行。