company-desktop-computer/docs/open-speed-plan AGit
main
第 13 节从「两个候选方向」扩写成可执行方案:
决定不做 region 二进制化,两条理由: 1. 主要收益只是图纸体积,而当前图纸大小在可接受范围内 2. 改动会改变存储格式,新图在老插件上读不出 region 几何,要么升版本号 变 proxy,要么额外做降级导出兜底,性价比不足 文档调整: - 开头原则改为状态说明,明确格式保持现状、新老插件双向可读 - 第 3、4、12 节标注为存档;第 9、10 节同步阶段三取消 - 第 11 节由「暂缓」改为「取消」,11.1 改为取消后的兼容状态, 11.2 保留重启前提与改动范围核对结果 - 新增第 13 节:开图速度方向。瓶颈是 X3dPartEntity::dwgInFields:1824 无条件调用 Create(),成本约 N×(acisIn+clone) + (N−1)×布尔; 列出懒执行与缓存布尔结果两个候选
第 13 节从「两个候选方向」扩写成可执行方案: - 13.1 成本模型:dwgInFields:1824 无条件 Create();Create() 每次全量重建, AddX3dSolid 不置脏,调用方只能靠再调 Create() 保证同步 - 13.2 方案 A(推荐,不改格式),分两步: A1 加 m_bDirty,Create() 早退,改参数的 15 个接口置脏 A2 dwgInFields 去掉 Create(),5 个读入口统一走 EnsureCreated 附收益边界与四个风险点(副作用延迟、失败重试、const_cast、CopyFrom 冗余) - 13.3 方案 B 缓存布尔结果:dwg 字段要升版本(不接受)、扩展字典 xrecord 可兼容但体积膨胀,结论是量完 A 再定 - 13.4 方案 C 降低单次重建成本:bbox 剔除、减少 clone、DrawUserInf3d 热点 - 13.5 度量埋点与验收判据 - 13.6 建议顺序:A1 → A2 → 再决定 B/C
No dependencies set.
The note is not visible to the blocked user.
第 13 节从「两个候选方向」扩写成可执行方案:
AddX3dSolid 不置脏,调用方只能靠再调 Create() 保证同步
A1 加 m_bDirty,Create() 早退,改参数的 15 个接口置脏
A2 dwgInFields 去掉 Create(),5 个读入口统一走 EnsureCreated
附收益边界与四个风险点(副作用延迟、失败重试、const_cast、CopyFrom 冗余)
可兼容但体积膨胀,结论是量完 A 再定