company-desktop/company-desktop-computer/doc-pipe-style-cache-perf AGit
main
新增第 13 节,把「这次改动到底快了多少」量化下来:
新增第 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 解析,以及图层/线型表每次打开;附计数 器验证法与三个场景的预期数字。
No dependencies set.
The note is not visible to the blocked user.
新增第 13 节,把「这次改动到底快了多少」量化下来:
其中 schema 解析占 ~0.74 ms;仅 open + close 只有 0.09 ms。说明代价
不在 sqlite3_open 本身,而在新连接的首次查询。
绘制子实体 14 次,Jig 拖动每帧
20 次 ≈1520 ms(TDbPipeLine 里的setInfo2Ent 没有 HasKey 判断,是无条件必付)。
4,O(N) 降为 O(1);端到端估算60 倍,500 实体图纸加载 6提升 20
8 s → 0.10.4 s。本来就不查库),避免高估收益。
ReadModelXData 全量 XData 解析,以及图层/线型表每次打开;附计数
器验证法与三个场景的预期数字。