diff --git a/README.md b/README.md index c595f9cd..05b405ca 100644 --- a/README.md +++ b/README.md @@ -423,10 +423,14 @@ Self-measured on every release via CI ([build benchmarks](generated/BUILD-BENCHM | Metric | Latest | |---|---| -| Build speed (native) | **2.1 ms/file** | -| Build speed (WASM) | **6.4 ms/file** | -| Query time | **2ms** | -| ~50,000 files (est.) | **~105.0s build** | +| Build speed (native) | **6.7 ms/file** | +| Build speed (WASM) | **9.5 ms/file** | +| Query time | **3ms** | +| No-op rebuild (native) | **4ms** | +| 1-file rebuild (native) | **344ms** | +| Query: fn-deps | **2.1ms** | +| Query: path | **1.2ms** | +| ~50,000 files (est.) | **~335.0s build** | Metrics are normalized per file for cross-version comparability. Times above are for a full initial build — incremental rebuilds only re-parse changed files. diff --git a/generated/BUILD-BENCHMARKS.md b/generated/BUILD-BENCHMARKS.md index 25c1aeed..67aa40f4 100644 --- a/generated/BUILD-BENCHMARKS.md +++ b/generated/BUILD-BENCHMARKS.md @@ -5,8 +5,8 @@ Metrics are normalized per file for cross-version comparability. | Version | Engine | Date | Files | Build (ms/file) | Query (ms) | Nodes/file | Edges/file | DB (bytes/file) | |---------|--------|------|------:|----------------:|-----------:|-----------:|-----------:|----------------:| -| 2.4.0 | native | 2026-02-26 | 109 | 2.1 ↑11% | 1.8 ↑20% | 5.9 ~ | 9.7 ↑7% | 4434 ↑15% | -| 2.4.0 | wasm | 2026-02-26 | 109 | 6.4 ↓3% | 2.1 ~ | 5.9 ~ | 9.7 ↑7% | 4434 ↑15% | +| 2.4.0 | native | 2026-02-27 | 122 | 6.7 ↑253% | 2.5 ↑67% | 6.3 ↑9% | 10.9 ↑20% | 5506 ↑43% | +| 2.4.0 | wasm | 2026-02-27 | 122 | 9.5 ↑44% | 3.4 ↑62% | 6.3 ↑9% | 10.9 ↑20% | 5506 ↑43% | | 2.3.0 | native | 2026-02-24 | 99 | 1.9 ~ | 1.5 ↑7% | 5.8 ↑7% | 9.1 ~ | 3848 ~ | | 2.3.0 | wasm | 2026-02-24 | 99 | 6.6 ~ | 2.1 ↑11% | 5.8 ~ | 9.1 ↑3% | 3848 ~ | | 2.1.0 | native | 2026-02-23 | 92 | 1.9 ↓24% | 1.4 ↑17% | 5.4 ↑6% | 9.1 ↓47% | 3829 ↓14% | @@ -20,24 +20,23 @@ Metrics are normalized per file for cross-version comparability. | Metric | Value | |--------|-------| -| Build time | 225ms | -| Query time | 2ms | -| Nodes | 644 | -| Edges | 1,062 | -| DB size | 472 KB | -| Files | 109 | - +| Build time | 813ms | +| Query time | 3ms | +| Nodes | 769 | +| Edges | 1,326 | +| DB size | 656 KB | +| Files | 122 | #### WASM | Metric | Value | |--------|-------| -| Build time | 702ms | -| Query time | 2ms | -| Nodes | 644 | -| Edges | 1,062 | -| DB size | 472 KB | -| Files | 109 | +| Build time | 1.2s | +| Query time | 3ms | +| Nodes | 769 | +| Edges | 1,326 | +| DB size | 656 KB | +| Files | 122 | ### Estimated performance at 50,000 files @@ -45,22 +44,24 @@ Extrapolated linearly from per-file metrics above. | Metric | Native (Rust) | WASM | |--------|---:|---:| -| Build time | 105.0s | 320.0s | -| DB size | 211.4 MB | 211.4 MB | -| Nodes | 295,000 | 295,000 | -| Edges | 485,000 | 485,000 | +| Build time | 335.0s | 475.0s | +| DB size | 262.5 MB | 262.5 MB | +| Nodes | 315,000 | 315,000 | +| Edges | 545,000 | 545,000 | ### Incremental Rebuilds | Version | Engine | No-op (ms) | 1-file (ms) | |---------|--------|----------:|-----------:| -| 2.4.0 | wasm | 5 | 233 | +| 2.4.0 | native | 4 | 344 | +| 2.4.0 | wasm | 5 | 373 | ### Query Latency | Version | Engine | fn-deps (ms) | fn-impact (ms) | path (ms) | roles (ms) | |---------|--------|------------:|--------------:|----------:|----------:| -| 2.4.0 | wasm | 1.8 | 1.4 | 0.8 | 0.8 | +| 2.4.0 | native | 2.1 | 1.6 | 1.2 | 1.1 | +| 2.4.0 | wasm | 2.2 | 1.6 | 1.2 | 1.1 | ### Notes @@ -86,40 +87,48 @@ extractor is needed to recover the regression. [ { "version": "2.4.0", - "date": "2026-02-26", - "files": 109, + "date": "2026-02-27", + "files": 122, "wasm": { - "buildTimeMs": 702, - "queryTimeMs": 2.1, - "nodes": 644, - "edges": 1062, - "dbSizeBytes": 483328, + "buildTimeMs": 1155, + "queryTimeMs": 3.4, + "nodes": 769, + "edges": 1326, + "dbSizeBytes": 671744, "perFile": { - "buildTimeMs": 6.4, - "nodes": 5.9, - "edges": 9.7, - "dbSizeBytes": 4434 + "buildTimeMs": 9.5, + "nodes": 6.3, + "edges": 10.9, + "dbSizeBytes": 5506 }, "noopRebuildMs": 5, - "oneFileRebuildMs": 233, + "oneFileRebuildMs": 373, "queries": { - "fnDepsMs": 1.8, - "fnImpactMs": 1.4, - "pathMs": 0.8, - "rolesMs": 0.8 + "fnDepsMs": 2.2, + "fnImpactMs": 1.6, + "pathMs": 1.2, + "rolesMs": 1.1 } }, "native": { - "buildTimeMs": 225, - "queryTimeMs": 1.8, - "nodes": 644, - "edges": 1062, - "dbSizeBytes": 483328, + "buildTimeMs": 813, + "queryTimeMs": 2.5, + "nodes": 769, + "edges": 1326, + "dbSizeBytes": 671744, "perFile": { - "buildTimeMs": 2.1, - "nodes": 5.9, - "edges": 9.7, - "dbSizeBytes": 4434 + "buildTimeMs": 6.7, + "nodes": 6.3, + "edges": 10.9, + "dbSizeBytes": 5506 + }, + "noopRebuildMs": 4, + "oneFileRebuildMs": 344, + "queries": { + "fnDepsMs": 2.1, + "fnImpactMs": 1.6, + "pathMs": 1.2, + "rolesMs": 1.1 } } },