company-desktop
|
97826360fb
|
docs: 汇总打开大图纸的性能结论(截面对画之外)
把这条线的结论收成一个文档,避免散落在多个 PR 的分析里。
内容:
- 优化前后数字:开图墙钟 113 s -> 93 s,截面恢复 22.4 s -> 9.4 s,
开图期回写 1140 -> 0,临时文件 6773 -> 1733
- 剩下时间的归属(优化后 81,046 采样):
base_ViewportDraw 之下 74.6%,Parasolid 67.5%,
且 Parasolid 的 93.4% 发生在我们的视口绘制里;我们的 arx 自耗时 <1%
- 结论:剩余成本是"构件数量 x 单构件建模成本",
既不是 CAD 自己在拖时间(绘制之外只剩 6.6%),也不是我们的代码慢(<1%)。
一次开图要建 1335 个 AcDbX3dSolid + 1248 个 AecDbX3dPart,计数器验证每个只建一次。
- 还能动的方向按性价比排序:减少要建的几何(LOD)、几何跨会话持久化(Phase 3)、
用基本体替代扫掠、截面再优化(已判定不做,收益 <0.5%)
- 诊断方法与踩过的坑:采样算不出次数必须用计数器;加密构建下函数级符号化不可靠
(GuardBar::Draw3d 报 27% 实为误判);VSDiagnostics 本机会卡死、wpr -stop 有 COM bug,
改用 xperf on/stop/merge;RVA 必须用 PDB 解析再下结论;计数器别写进同一份报告文件
验证:纯文档,数据来自 tools/run_acad_perf.ps1 + tools/perf_diagsession.py 的实测。
|
2026-10-28 23:05:13 +08:00 |
|