docs: 补充管线系统样式缓存的效率提升量化分析 #89

Merged
gjm merged 1 commits from company-desktop/company-desktop-computer/doc-pipe-style-cache-perf AGit into main 2026-10-28 10:19:32 +08:00
Collaborator

新增第 13 节,把「这次改动到底快了多少」量化下来:

  • 实测 Plumbing.db(106 张表)新建连接 + 首条查询 + 关闭 ≈ 0.98 ms,
    其中 schema 解析占 ~0.74 ms;仅 open + close 只有 0.09 ms。说明代价
    不在 sqlite3_open 本身,而在新连接的首次查询。
  • 按此折算改动前的开库账:dwgInFields 单实体 16 次 open ≈12~16 ms,
    绘制子实体 14 次,Jig 拖动每帧 20 次 ≈1520 ms(TDbPipeLine 里的
    setInfo2Ent 没有 HasKey 判断,是无条件必付)。
  • 改动后开库次数从 16×N 变成常数 24,O(N) 降为 O(1);端到端估算
    提升 20
    60 倍,500 实体图纸加载 68 s → 0.10.4 s。
  • 同时写明哪些路径受益、哪些不受益(新图纸已由 PR #87 刷过 XData,
    本来就不查库),避免高估收益。
  • 补当前残留瓶颈与复核方法:剩余代价主要是 getCurrentTrade 触发的
    ReadModelXData 全量 XData 解析,以及图层/线型表每次打开;附计数
    器验证法与三个场景的预期数字。
新增第 13 节,把「这次改动到底快了多少」量化下来: - 实测 Plumbing.db(106 张表)新建连接 + 首条查询 + 关闭 ≈ 0.98 ms, 其中 schema 解析占 ~0.74 ms;仅 open + close 只有 0.09 ms。说明代价 不在 sqlite3_open 本身,而在新连接的首次查询。 - 按此折算改动前的开库账:dwgInFields 单实体 16 次 open ≈12~16 ms, 绘制子实体 14 次,Jig 拖动每帧 ~20 次 ≈15~20 ms(TDbPipeLine 里的 setInfo2Ent 没有 HasKey 判断,是无条件必付)。 - 改动后开库次数从 16×N 变成常数 2~4,O(N) 降为 O(1);端到端估算 提升 20~60 倍,500 实体图纸加载 6~8 s → 0.1~0.4 s。 - 同时写明哪些路径受益、哪些不受益(新图纸已由 PR #87 刷过 XData, 本来就不查库),避免高估收益。 - 补当前残留瓶颈与复核方法:剩余代价主要是 getCurrentTrade 触发的 ReadModelXData 全量 XData 解析,以及图层/线型表每次打开;附计数 器验证法与三个场景的预期数字。
company-desktop added 1 commit 2026-10-28 10:19:10 +08:00
新增第 13 节,把「这次改动到底快了多少」量化下来:

- 实测 Plumbing.db(106 张表)新建连接 + 首条查询 + 关闭 ≈ 0.98 ms,
  其中 schema 解析占 ~0.74 ms;仅 open + close 只有 0.09 ms。说明代价
  不在 sqlite3_open 本身,而在新连接的首次查询。
- 按此折算改动前的开库账:dwgInFields 单实体 16 次 open ≈12~16 ms,
  绘制子实体 14 次,Jig 拖动每帧 ~20 次 ≈15~20 ms(TDbPipeLine 里的
  setInfo2Ent 没有 HasKey 判断,是无条件必付)。
- 改动后开库次数从 16×N 变成常数 2~4,O(N) 降为 O(1);端到端估算
  提升 20~60 倍,500 实体图纸加载 6~8 s → 0.1~0.4 s。
- 同时写明哪些路径受益、哪些不受益(新图纸已由 PR #87 刷过 XData,
  本来就不查库),避免高估收益。
- 补当前残留瓶颈与复核方法:剩余代价主要是 getCurrentTrade 触发的
  ReadModelXData 全量 XData 解析,以及图层/线型表每次打开;附计数
  器验证法与三个场景的预期数字。
gjm merged commit a21860a632 into main 2026-10-28 10:19:32 +08:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gjm/envi-code#89