# Performance Benchmark Report — M3 里程碑 **Date**: 2026-07-24 **Hardware**: 4× 2500 MHz CPU, 1 GB RAM (Docker container) **Compiler**: GCC 11.4, C++17, -O2 --- ## Results ### BVH (Bounding Volume Hierarchy) | 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 | ### 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 | ### 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 | ### 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