company-desktop/company-desktop-computer/doc-open-perf-summary AGit
main
把这条线的结论收成一个文档,避免散落在多个 PR 的分析里。
内容:
验证:纯文档,数据来自 tools/run_acad_perf.ps1 + tools/perf_diagsession.py 的实测。
把这条线的结论收成一个文档,避免散落在多个 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 的实测。
No dependencies set.
The note is not visible to the blocked user.
把这条线的结论收成一个文档,避免散落在多个 PR 的分析里。
内容:
开图期回写 1140 -> 0,临时文件 6773 -> 1733
base_ViewportDraw 之下 74.6%,Parasolid 67.5%,
且 Parasolid 的 93.4% 发生在我们的视口绘制里;我们的 arx 自耗时 <1%
既不是 CAD 自己在拖时间(绘制之外只剩 6.6%),也不是我们的代码慢(<1%)。
一次开图要建 1335 个 AcDbX3dSolid + 1248 个 AecDbX3dPart,计数器验证每个只建一次。
用基本体替代扫掠、截面再优化(已判定不做,收益 <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 的实测。