feat(v3.2): assembly tree + benchmark report + CI/Python/3MF
This commit is contained in:
+39
-53
@@ -1,64 +1,50 @@
|
||||
# Performance Benchmark Report — M3 里程碑
|
||||
# ViewDesignEngine 性能基准报告
|
||||
|
||||
**Date**: 2026-07-24
|
||||
**Hardware**: 4× 2500 MHz CPU, 1 GB RAM (Docker container)
|
||||
**Compiler**: GCC 11.4, C++17, -O2
|
||||
> 生成: 2026-07-24 | 环境: ECS 4核 2.5GHz, Ubuntu 22.04, GCC 11.4
|
||||
|
||||
---
|
||||
## BVH (包围盒层次)
|
||||
|
||||
## Results
|
||||
| 指标 | 规模 | 耗时 | 吞吐 |
|
||||
|------|------|------|------|
|
||||
| BVH 构建 | 500 tris | 73.9 µs | 6.8M tris/s |
|
||||
| BVH 构建 | 1000 tris | 253 µs | 4.0M tris/s |
|
||||
| BVH 构建 | 2000 tris | 656 µs | 3.1M tris/s |
|
||||
| 射线查询 | 500 tris | 1.38 ms | 726k queries/s |
|
||||
| 射线查询 | 1000 tris | 2.06 ms | 488k queries/s |
|
||||
| 射线查询 | 2000 tris | 3.21 ms | 313k queries/s |
|
||||
|
||||
### BVH (Bounding Volume Hierarchy)
|
||||
## Delaunay 三角剖分
|
||||
|
||||
| Benchmark | Size | Time | Throughput |
|
||||
|-----------|------|------|------------|
|
||||
| Build | 500 tris | 72 µs | 6.9M tris/s |
|
||||
| Build | 1000 tris | 245 µs | 4.1M tris/s |
|
||||
| Build | 2000 tris | 650 µs | 3.1M tris/s |
|
||||
| Ray Query | 500 tris × 1000 rays | 1.39 ms | 721K rays/s |
|
||||
| Ray Query | 2000 tris × 1000 rays | 3.19 ms | 315K rays/s |
|
||||
| 指标 | 规模 | 耗时 | 吞吐 |
|
||||
|------|------|------|------|
|
||||
| Delaunay 2D | 100 pts | 64.8 µs | 1.55M pts/s |
|
||||
| Delaunay 2D | 1000 pts | 3.97 ms | 253k pts/s |
|
||||
| Delaunay 2D | 10000 pts | 659 ms | 15.2k pts/s |
|
||||
|
||||
### 2D Delaunay Triangulation
|
||||
## 曲线求值
|
||||
|
||||
| Benchmark | Size | Time | Throughput |
|
||||
|-----------|------|------|------------|
|
||||
| Bowyer-Watson | 100 pts | 67 µs | 1.5M pts/s |
|
||||
| Bowyer-Watson | 1000 pts | 3.96 ms | 254K pts/s |
|
||||
| Bowyer-Watson | 10000 pts | 671 ms | 15K pts/s |
|
||||
| 指标 | 规模 | 耗时 | 吞吐 |
|
||||
|------|------|------|------|
|
||||
| Bézier 求值 | 10K evals | 277 µs | 36M evals/s |
|
||||
| Bézier 求值 | 100K evals | 2.64 ms | 38M evals/s |
|
||||
| B-Spline 求值 | 10K evals | 720 µs | 14M evals/s |
|
||||
| B-Spline 求值 | 100K evals | 7.14 ms | 14M evals/s |
|
||||
|
||||
### Curve Evaluation
|
||||
## 空间索引
|
||||
|
||||
| Benchmark | Size | Time | Throughput |
|
||||
|-----------|------|------|------------|
|
||||
| Bezier (cubic) | 10000 | 263 µs | 38.5M evals/s |
|
||||
| Bezier (cubic) | 100000 | 2.66 ms | 38.1M evals/s |
|
||||
| BSpline (cubic) | 10000 | 744 µs | 13.6M evals/s |
|
||||
| BSpline (cubic) | 100000 | 7.33 ms | 13.8M evals/s |
|
||||
| 指标 | 规模 | 耗时 | 吞吐 |
|
||||
|------|------|------|------|
|
||||
| R-Tree 构建 | 500 items | 19.2 µs | 26.1M items/s |
|
||||
| R-Tree 构建 | 1000 items | 35.7 µs | 28.2M items/s |
|
||||
| R-Tree 构建 | 2000 items | 151 µs | 13.3M items/s |
|
||||
| R-Tree kNN | 500 items | 23.9 µs | 842k queries/s |
|
||||
| R-Tree kNN | 1000 items | 27.5 µs | 731k queries/s |
|
||||
|
||||
### Spatial Index (KD-Tree)
|
||||
## 网格布尔运算
|
||||
|
||||
| Benchmark | Size | Time | Throughput |
|
||||
|-----------|------|------|------------|
|
||||
| Build | 500 pts | 71 µs | 7.0M pts/s |
|
||||
| Build | 2000 pts | 537 µs | 3.8M pts/s |
|
||||
| kNN (k=10) | 500 pts | 64 µs | 316K q/s |
|
||||
| kNN (k=10) | 2000 pts | 92 µs | 218K q/s |
|
||||
|
||||
### 3D Mesh Boolean
|
||||
|
||||
| Benchmark | Size | Time | Throughput |
|
||||
|-----------|------|------|------------|
|
||||
| Union | ~100 faces | 2.05 ms | 495 ops/s |
|
||||
| Union | ~500 faces | 9.10 ms | 112 ops/s |
|
||||
| Intersection | ~100 faces | 1.94 ms | 520 ops/s |
|
||||
| Intersection | ~500 faces | 8.53 ms | 118 ops/s |
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
All 5 benchmark modules operational (143/143 tests pass). Performance scales reasonably for a C++17 geometry engine without SIMD optimization. Key areas for future improvement:
|
||||
|
||||
- BVH ray query: implement packet tracing / wider BVH
|
||||
- Delaunay 2D: O(n²) in current Bowyer-Watson
|
||||
- Boolean: clip-by-point-test is brute-force; needs exact mesh clipping
|
||||
| 指标 | 规模 | 耗时 | 吞吐 |
|
||||
|------|------|------|------|
|
||||
| Union | ~100 faces | 2.00 ms | 501 ops/s |
|
||||
| Union | ~500 faces | 9.69 ms | 104 ops/s |
|
||||
| Intersection | ~100 faces | 1.85 ms | 544 ops/s |
|
||||
| Intersection | ~500 faces | 8.32 ms | 121 ops/s |
|
||||
|
||||
Reference in New Issue
Block a user