Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ jobs:
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

BRANCH="benchmark/build-$(date +%Y%m%d-%H%M%S)"
BRANCH="docs/benchmark-build-$(date +%Y%m%d-%H%M%S)"
git checkout -b "$BRANCH"
git add generated/BUILD-BENCHMARKS.md README.md
git commit -m "docs: update build performance benchmarks"
Expand Down Expand Up @@ -139,7 +139,7 @@ jobs:
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

BRANCH="benchmark/embedding-$(date +%Y%m%d-%H%M%S)"
BRANCH="docs/benchmark-embedding-$(date +%Y%m%d-%H%M%S)"
git checkout -b "$BRANCH"
git add generated/EMBEDDING-BENCHMARKS.md
git commit -m "docs: update embedding benchmarks"
Expand Down Expand Up @@ -204,7 +204,7 @@ jobs:
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

BRANCH="benchmark/query-$(date +%Y%m%d-%H%M%S)"
BRANCH="docs/benchmark-query-$(date +%Y%m%d-%H%M%S)"
git checkout -b "$BRANCH"
git add generated/QUERY-BENCHMARKS.md
git commit -m "docs: update query benchmarks"
Expand Down Expand Up @@ -269,7 +269,7 @@ jobs:
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

BRANCH="benchmark/incremental-$(date +%Y%m%d-%H%M%S)"
BRANCH="docs/benchmark-incremental-$(date +%Y%m%d-%H%M%S)"
git checkout -b "$BRANCH"
git add generated/INCREMENTAL-BENCHMARKS.md
git commit -m "docs: update incremental benchmarks"
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -403,10 +403,10 @@ Self-measured on every release via CI ([build benchmarks](generated/BUILD-BENCHM

| Metric | Latest |
|---|---|
| Build speed (native) | **1.9 ms/file** |
| Build speed (WASM) | **6.6 ms/file** |
| Build speed (native) | **2.2 ms/file** |
| Build speed (WASM) | **6.4 ms/file** |
| Query time | **2ms** |
| ~50,000 files (est.) | **~95.0s build** |
| ~50,000 files (est.) | **~110.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.

Expand Down
61 changes: 47 additions & 14 deletions generated/BUILD-BENCHMARKS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +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.2 ↑16% | 1.6 ↑7% | 5.9 ~ | 9.6 ↑5% | 4397 ↑14% |
| 2.4.0 | wasm | 2026-02-26 | 109 | 6.4 ↓3% | 2.1 ~ | 5.9 ~ | 9.6 ↑5% | 4397 ↑14% |
| 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% |
Expand All @@ -18,37 +20,68 @@ Metrics are normalized per file for cross-version comparability.

| Metric | Value |
|--------|-------|
| Build time | 183ms |
| Build time | 235ms |
| Query time | 2ms |
| Nodes | 575 |
| Edges | 897 |
| DB size | 372 KB |
| Files | 99 |
| Nodes | 640 |
| Edges | 1,049 |
| DB size | 468 KB |
| Files | 109 |

#### WASM

| Metric | Value |
|--------|-------|
| Build time | 649ms |
| Build time | 700ms |
| Query time | 2ms |
| Nodes | 575 |
| Edges | 897 |
| DB size | 372 KB |
| Files | 99 |
| Nodes | 640 |
| Edges | 1,049 |
| DB size | 468 KB |
| Files | 109 |

### Estimated performance at 50,000 files

Extrapolated linearly from per-file metrics above.

| Metric | Native (Rust) | WASM |
|--------|---:|---:|
| Build time | 95.0s | 330.0s |
| DB size | 183.5 MB | 183.5 MB |
| Nodes | 290,000 | 290,000 |
| Edges | 455,000 | 455,000 |
| Build time | 110.0s | 320.0s |
| DB size | 209.7 MB | 209.7 MB |
| Nodes | 295,000 | 295,000 |
| Edges | 480,000 | 480,000 |

<!-- BENCHMARK_DATA
[
{
"version": "2.4.0",
"date": "2026-02-26",
"files": 109,
"wasm": {
"buildTimeMs": 700,
"queryTimeMs": 2.1,
"nodes": 640,
"edges": 1049,
"dbSizeBytes": 479232,
"perFile": {
"buildTimeMs": 6.4,
"nodes": 5.9,
"edges": 9.6,
"dbSizeBytes": 4397
}
},
"native": {
"buildTimeMs": 235,
"queryTimeMs": 1.6,
"nodes": 640,
"edges": 1049,
"dbSizeBytes": 479232,
"perFile": {
"buildTimeMs": 2.2,
"nodes": 5.9,
"edges": 9.6,
"dbSizeBytes": 4397
}
}
},
{
"version": "2.3.0",
"date": "2026-02-24",
Expand Down
8 changes: 4 additions & 4 deletions scripts/update-benchmark-report.js
Original file line number Diff line number Diff line change
Expand Up @@ -214,10 +214,10 @@ ${rows}
Metrics are normalized per file for cross-version comparability. Times above are for a full initial build — incremental rebuilds only re-parse changed files.
`;

// Match the performance section from header to next h2 (## ) header or end.
// The lookahead must reject h3+ (###) so subsections like "### Lightweight
// Footprint" are preserved and not swallowed by the replacement.
const perfRegex = /## 📊 Performance\r?\n[\s\S]*?(?=\r?\n## (?!#)|$)/;
// Match the performance section from header to next h2/h3 header or end.
// The lookahead stops at ## (h2) or ### (h3) so subsections like
// "### Lightweight Footprint" are preserved and not swallowed.
const perfRegex = /## 📊 Performance\r?\n[\s\S]*?(?=\r?\n#{2,3} |$)/;
if (perfRegex.test(readme)) {
readme = readme.replace(perfRegex, perfSection);
} else {
Expand Down
Loading