Scan time on large applications: measured breakdown and remaining options
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 重构
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- playwright, typescript, vite
调研方向
Start by measuring how quickly a passing focus move arrives, then benchmark Vite server.warmup and parallel screen scans as described in the issue. Compare results on a quiet machine and account for the source attributes needed by overlay file and line hints. Done means the measurements support a decision on which scan-time option to adopt.
由索引模型根据 Issue 内容生成。
描述
Measured on a real product UI (one screen, about 55 seconds)
| Phase | Share |
|---|---|
| Readiness wait while the app mounts about 2,000 dev-server modules | 37% |
| Seven focus-settle timeouts at 2.5 s proving menus do not steal focus | 32% |
| Whole-DOM fetch per accessibility lookup (separate issue) | 16% |
| Keyboard walks, axe, everything else | 15% |
The lab tunnel was not the bottleneck: API calls cost about 300 ms more than local and overlap with module loading.
On a small application one screen takes about 10 seconds warm. Editing the vite config triggers a one-time dependency re-optimization that doubles the next scan.
Options not taken, with reasons
- Shortening
SETTLE_SAMPLES_REQUIREDrecovers about 1 second but guards a real two-burst mount regression. - Shortening
FOCUS_SETTLE_TIMEOUT_MSrecovers 2.5 seconds per unfocused widget but there is no measurement of how quickly a passing focus move arrives; shortening blind turns slow but correct focus into false failures. Measure a passing case first. - Running screens in parallel shares one browser process and a DOM-stability poll, so contention lengthens the wait; likely a loss on a loaded laptop. Measure before adopting.
- A production build removes the module-graph cost but drops the JSX source attributes the overlay's file and line hints read.
- Vite
server.warmupfor the target application may cut the module-graph time while keeping source attributes; unmeasured.
Direction
Measure a passing focus move; measure server.warmup; measure parallel screens on a quiet machine; then decide.
- 主要语言
- TypeScript
- 星标
- 0
- 派生
- 0
- 平均合并
- 2 小时 48 分钟
- 30 天内合并 PR
- 8
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
usabl-dev/usabl 的其他 Issue
-
area: engine bug
难度 2/5 1-3 小时 新手友好度 86/100
-
Stop hook allows a stop on an unknown verdict, and the self-check prints IDLE for a null verdict未关闭area: assistants bug
难度 2/5 1-3 小时 新手友好度 75/100
-
area: engine bug security
难度 2/5 1-3 小时 新手友好度 72/100
-
Overlay: browser context failures are counted per plugin, not per browser, and close is not shared未关闭area: overlay bug
难度 2/5 1-3 小时 新手友好度 64/100
-
area: engine enhancement performance
难度 2/5 1-3 小时 新手友好度 68/100
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 82/100
Automattic/data-liberation-agent#953 ·
维护者通常 1 天内回复
-
documentation
难度 1/5 1 小时以内 新手友好度 90/100
funmary-app/funmary#399 ·
维护者通常 1 天内回复
-
area:curator enhancement
难度 2/5 1-3 小时 新手友好度 74/100
CassioDalla/Scrinalia#150 ·
维护者通常 1 天内回复
-
status: needs-triage v1-bug-bash
难度 2/5 1-3 小时 新手友好度 82/100
a2ui-project/a2ui#3533 ·
维护者通常 1 天内回复
-
backend enhancement priority:P3
难度 2/5 1-3 小时 新手友好度 78/100
geolens-io/geolens#3310 ·
维护者通常 1 天内回复