chore: 版本 0.18.3 — 剖面盒遍历优化(剪枝 ~1.8x + 后序传播 ~15%)

This commit is contained in:
tian 2026-08-06 10:43:12 +08:00
parent 636defc959
commit 8e16d28d45
2 changed files with 24 additions and 1 deletions

View File

@ -1,5 +1,28 @@
# NavisworksTransport 变更日志 # NavisworksTransport 变更日志
## [0.18.3] - 2026-08-06
### ⚡ 性能优化
- **剖面盒遍历组节点聚合盒剪枝(大型模型 ~1.8 倍提速)**
- `TraverseAndCollect` 对非几何节点(组节点)先查聚合包围盒,与剖面盒不相交 → **整棵子树跳过**(不再深入任何后代)
- 前提验证NW 的 `BoundingBox()` 为文档级缓存O(1) 读取Architecture.nwd 2 万节点 + 全厂设备模型 403MB 实测全 0ms——真正成本是每节点 Children/IsHidden/HasGeometry API 调用,剪枝省掉的正是这些
- 实测(全厂设备模型 403MB100×100×40 测试盒3521 命中对象):**129.9s → 72.9s**;细长路径剖面盒(相交子树少)收益比例更高
- **AncestorsAndSelf 后序传播(消除 K×D 次枚举,再降 ~15%**
- 命中对象只加入自己,祖先由父级 post-order 逐层上传(`TraverseAndCollect` 返回子树命中标志)——共享祖先只被加入一次,消除 K 个命中对象 × 树深 D 的 NW API 枚举
- 实测(同测试环境):**72.9s → 62.0s**;两项叠加 **129.9s → 62.0s~2.1 倍)**
- 正确性验证:盒内对象/隐藏节点与优化前完全一致3521/80043Architecture.nwd 228/4928
### 🧪 测试基础设施
- `export-section-box` 测试端点增加 `prune` 参数 + `traversalMs` 计时(性能对比用)
- `bbox-profiling` 端点增加 `enum=false` 模式(根盒查询,避免大模型全量枚举 10+ 分钟)
- **F1 测试后台残留修复**`BatchQueueF1ProcessAutomationTests` 末尾等待批处理完全退出(`batch-queue-status` 新增 `isExecuting` 字段),修复 F1 跑完后全量测试 `BatchQueue_AddItems` 偶发失败
### 验证
- 集成测试 25/25 通过
## [0.18.2] - 2026-08-05 ## [0.18.2] - 2026-08-05
### ✨ 功能变更 ### ✨ 功能变更

View File

@ -1,3 +1,3 @@
# 版本号 # 版本号
0.18.2 0.18.3