chore: 版本 0.18.3 — 剖面盒遍历优化(剪枝 ~1.8x + 后序传播 ~15%)
This commit is contained in:
parent
636defc959
commit
8e16d28d45
23
CHANGELOG.md
23
CHANGELOG.md
@ -1,5 +1,28 @@
|
||||
# NavisworksTransport 变更日志
|
||||
|
||||
## [0.18.3] - 2026-08-06
|
||||
|
||||
### ⚡ 性能优化
|
||||
|
||||
- **剖面盒遍历组节点聚合盒剪枝(大型模型 ~1.8 倍提速)**:
|
||||
- `TraverseAndCollect` 对非几何节点(组节点)先查聚合包围盒,与剖面盒不相交 → **整棵子树跳过**(不再深入任何后代)
|
||||
- 前提验证:NW 的 `BoundingBox()` 为文档级缓存(O(1) 读取,Architecture.nwd 2 万节点 + 全厂设备模型 403MB 实测全 0ms)——真正成本是每节点 Children/IsHidden/HasGeometry API 调用,剪枝省掉的正是这些
|
||||
- 实测(全厂设备模型 403MB,100×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/80043;Architecture.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
|
||||
|
||||
### ✨ 功能变更
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
# 版本号
|
||||
|
||||
0.18.2
|
||||
0.18.3
|
||||
|
||||
Loading…
Reference in New Issue
Block a user