2.9 KiB
2.9 KiB
4-8 [done] Tree Shell Cutover Performance Report v1
更新时间:2026-04-18
测试环境:
- 前端主站:
http://127.0.0.1:3000- Rust Web:
http://127.0.0.1:3104- 浏览器:Playwright Chromium headless
- 数据口径:同一工作区下真实 Sidebar + 临时父/子页面样本 + move/embed picker 对话框
1. 测量口径
首包- 指主树或 picker 打开后,到对应 surface 首次可见的时间。
首次可交互- 指 surface 已出现,且首个可点击行/按钮已可交互。
切页延迟- 指点击页面树或文件树行,到浏览器 URL 切到目标页面的时间。
大树展开延迟- 指点击页面树真实可展开节点的展开/收起往返显隐完成时间。
fallback- 指
/api/stream/events被阻断或失败时,Sidebar 仍能在主站内回到可见可用树视图的结果。
- 指
2. 实测结果
2.1 首页与切流 smoke
task097-homepage-entry-smoke.js/auth返回200 text/html/返回307 -> /auth3104 /health返回200
2.2 Sidebar 主树 cutover
task101-tree-shell-cutover-smoke.js首包 / 首次可交互:9ms切页延迟:205msstream:/api/stream/events?stream=workspace&projection=sidebar_tree&workspaceId=...fallback:阻断 stream 后仍在22ms内显示可用主树
2.3 filetree / picker 回归
task102-tree-shell-regression.jsfiletree 首包 / 首次可交互:6msfiletree 切页延迟:179mspicker 首包 / 首次可交互:264mspicker 搜索输入后结果/空态稳定出现:1005ms
2.4 页面树展开样本
- 真实可展开节点往返展开/收起延迟:
124ms
3. 对照与结论
- 旧 iframe/postMessage 实验壳已退出 Sidebar / filetree / picker 主路径。
- 当前默认主路径已经是 Next 内统一 tree surface + stream/projection 主链。
3104与 Convex 连接正常时,主树按 stream 路径工作;3104/stream 失败时,主树仍能通过 fallback 保持可见。- 当前开发机口径下,主路径交互均在亚秒级,未再出现此前
3000因 Convex/tree shell 卡死而无响应的问题。
4. fallback 结果
fallback触发条件:- 主动阻断
/api/stream/events
- 主动阻断
- 观测结果:
- 页面不空白
- Sidebar 主树仍渲染
- 可继续看到目标页面树节点
- 结论:
fallback已从“实验性兜底”变成正式切流护栏
5. 残余风险
- 当前指标来自本地开发环境与小样本 smoke,不代表生产环境大规模树深/大附件工作区的长期 p95。
- picker 搜索链路仍受搜索索引可见性影响;本轮已验证“搜索后结果或空态稳定出现”,但未把索引收敛时间当作树域切流 blocker。
- 后续如继续增强 Rust-first renderer,可在不改变当前 cutover 结论的前提下,把这份报告升级为多样本趋势报表。