页面加载性能

每个应用页面都会加载共享界面。优化首屏公共代码、重复目录计算和 Provider 列表渲染,保持认证、路由历史和模型能力。

测量结果

基准聊天导出引用 33 个 JavaScript 文件,gzip 总量为 832419 字节。十四种 DiceBear 样式全部进入首屏依赖,其中两个头像文件约 270 KB。实际 App 的 Provider 目录请求耗时 1138 ms;Python 单次目录 profile 记录约 234 次凭据目录扫描,累计扫描耗时 1.318 秒。会话期间资源请求包含轮询,不能作为冷启动耗时。

设计

头像样式使用显式动态导入,保留同步默认样式,合并并发导入并允许失败后重试。SVG 重用缓存有容量上限,上传和字母模式不生成 DiceBear SVG。Provider 行使用稳定回调和 React memo,选择变化只重绘受影响行。设置缓存只在有效期内初始化列表,配置操作继续使缓存失效。

Provider 目录在单次请求内读取凭据存在状态快照,不跨请求缓存认证判断。保留不支持的 Provider、别名、本地服务、CLI 和环境变量/云认证行为。测量不记录凭据内容。异步头像加载在卸载或配置变化后不更新旧组件,保持全部样式、Thumbs 背景和 SVG ID 隔离。

验收

公共头像入口只加载默认样式,按需加载全部十四种样式;重复头像有界重用。目录每次请求只扫描凭据一次,下次请求立即反映变更。Provider 选择只渲染受影响行,缓存有效的再次访问直接显示列表。对比首屏 JS 字节与同机目录耗时,验收默认 App 的聊天、Agents、能力、通用和 Provider 页面。

实现状态

实现通过独立规格和质量审查。首屏 JavaScript gzip 从 832419 降为 496156 字节;同机五次预热目录计算中位数从 1248.779 降为 267.607 ms,凭据枚举从 234 降为 1 次,选择变化重绘从 239 降为 2 行。完整测试与默认 App 验收单独记录于验收报告;这些数字不表示端到端点击延迟。