perf: 收窄缓存失效并优化异步任务与首屏加载

按 enriched 写入最早影响日期维护有界区间版本,保留全局发布一致性校验,使历史读取与回测缓存复用不受较晚行情更新影响;历史修订和未知范围变更仍失效。

将扩展数据解析、落盘与备份/策略导入移出事件循环;串行限制扩展数据写入,并在请求取消后保持执行中的写入限额及临时文件清理。

拆分 11 个扩展页面为轻量注册清单和按需页面,助手抽屉首次使用时加载;并发获取扩展后按固定顺序注册,为运行时脚本增加超时隔离。保持金融计算、业务数据格式与扩展 v1 契约不变。

验证:隔离全量后端 3923 项通过、7 项跳过、1 项预期失败;前端 447 项通过,TypeScript 与生产构建通过。Ruff 无新增告警,git diff --check 通过。浏览器验证 11 个扩展路由与脚本超时隔离。

性能:1000 标的、120 天、12 万行、30 次更新,历史面板读取中位数 7.19ms -> 0.14ms,计算 31 -> 1 次,结果一致。注入 250ms 解析耗时的心跳间隔中位最大值 269ms -> 11.3ms。启动必需 JS 2.33MB -> 0.65MB;10Mbps/40ms 网络与固定 API 响应下,登录页 3 次冷启动中位数 3.15s -> 1.12s。

Signed-off-by: shy3130 <shy3130@qq.com>
This commit is contained in:
shy3130
2026-11-01 22:32:34 +08:00
parent f443627377
commit ab2b82da37
43 changed files with 12374 additions and 11475 deletions
+2
View File
@@ -164,6 +164,8 @@ const extension: FrontendExtension = {
完整前端模板位于 [`frontend/src/custom/_template/extension.tsx.example`](../frontend/src/custom/_template/extension.tsx.example)。
较大的页面应让 `extension.tsx` 只保留路由、导航与轻量组件,使用 `React.lazy(() => import('./Page').then(m => ({ default: m.Page })))` 注册页面组件;路由宿主已有 `Suspense`。源码模块并发加载、按路径排序注册,冲突处理顺序不变。运行时页面插件清单与各脚本均有加载超时,单个脚本失败只禁用该扩展;契约仍为 v1。
### 3.4 前端禁止事项
- 不直接在多个组件中拼接后端 URL,统一使用 `frontend/src/lib/api.ts` 或未来公开客户端。