From 496279231bf3565d2955b4075557a6158d93ad25 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 26 Feb 2026 23:40:57 +0000 Subject: [PATCH] docs: update build performance benchmarks (v2.4.0) --- README.md | 12 ++-- generated/BUILD-BENCHMARKS.md | 101 ++++++++++++++++++---------------- 2 files changed, 63 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index e7664cc0..4059fb36 100644 --- a/README.md +++ b/README.md @@ -406,10 +406,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) | **4.7 ms/file** | +| Build speed (WASM) | **9.2 ms/file** | +| Query time | **3ms** | +| No-op rebuild (native) | **3ms** | +| 1-file rebuild (native) | **260ms** | +| Query: fn-deps | **2ms** | +| Query: path | **1.1ms** | +| ~50,000 files (est.) | **~235.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..1499abf6 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-26 | 117 | 4.7 ↑147% | 2.5 ↑67% | 6 ↑3% | 10.2 ↑12% | 4761 ↑24% | +| 2.4.0 | wasm | 2026-02-26 | 117 | 9.2 ↑39% | 3.4 ↑62% | 6 ↑3% | 10.2 ↑12% | 4761 ↑24% | | 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 | 555ms | +| Query time | 3ms | +| Nodes | 706 | +| Edges | 1,194 | +| DB size | 544 KB | +| Files | 117 | #### WASM | Metric | Value | |--------|-------| -| Build time | 702ms | -| Query time | 2ms | -| Nodes | 644 | -| Edges | 1,062 | -| DB size | 472 KB | -| Files | 109 | +| Build time | 1.1s | +| Query time | 3ms | +| Nodes | 706 | +| Edges | 1,194 | +| DB size | 544 KB | +| Files | 117 | ### 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 | 235.0s | 460.0s | +| DB size | 227.0 MB | 227.0 MB | +| Nodes | 300,000 | 300,000 | +| Edges | 510,000 | 510,000 | ### Incremental Rebuilds | Version | Engine | No-op (ms) | 1-file (ms) | |---------|--------|----------:|-----------:| -| 2.4.0 | wasm | 5 | 233 | +| 2.4.0 | native | 3 | 260 | +| 2.4.0 | wasm | 4 | 371 | ### 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.5 | 1.1 | 1.1 | +| 2.4.0 | wasm | 2.1 | 1.5 | 1.1 | 1 | ### Notes @@ -87,39 +88,47 @@ extractor is needed to recover the regression. { "version": "2.4.0", "date": "2026-02-26", - "files": 109, + "files": 117, "wasm": { - "buildTimeMs": 702, - "queryTimeMs": 2.1, - "nodes": 644, - "edges": 1062, - "dbSizeBytes": 483328, + "buildTimeMs": 1072, + "queryTimeMs": 3.4, + "nodes": 706, + "edges": 1194, + "dbSizeBytes": 557056, "perFile": { - "buildTimeMs": 6.4, - "nodes": 5.9, - "edges": 9.7, - "dbSizeBytes": 4434 + "buildTimeMs": 9.2, + "nodes": 6, + "edges": 10.2, + "dbSizeBytes": 4761 }, - "noopRebuildMs": 5, - "oneFileRebuildMs": 233, + "noopRebuildMs": 4, + "oneFileRebuildMs": 371, "queries": { - "fnDepsMs": 1.8, - "fnImpactMs": 1.4, - "pathMs": 0.8, - "rolesMs": 0.8 + "fnDepsMs": 2.1, + "fnImpactMs": 1.5, + "pathMs": 1.1, + "rolesMs": 1 } }, "native": { - "buildTimeMs": 225, - "queryTimeMs": 1.8, - "nodes": 644, - "edges": 1062, - "dbSizeBytes": 483328, + "buildTimeMs": 555, + "queryTimeMs": 2.5, + "nodes": 706, + "edges": 1194, + "dbSizeBytes": 557056, "perFile": { - "buildTimeMs": 2.1, - "nodes": 5.9, - "edges": 9.7, - "dbSizeBytes": 4434 + "buildTimeMs": 4.7, + "nodes": 6, + "edges": 10.2, + "dbSizeBytes": 4761 + }, + "noopRebuildMs": 3, + "oneFileRebuildMs": 260, + "queries": { + "fnDepsMs": 2, + "fnImpactMs": 1.5, + "pathMs": 1.1, + "rolesMs": 1.1 } } },