Skip to content
Merged
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
84 changes: 76 additions & 8 deletions generated/benchmarks/INCREMENTAL-BENCHMARKS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ Import resolution: native batch vs JS fallback throughput.

| Version | Engine | Files | Full Build | No-op | 1-File | Resolve (native) | Resolve (JS) |
|---------|--------|------:|-----------:|------:|-------:|------------------:|-------------:|
| 3.9.6 | native | 744 | 3.0s | 10ms | 54ms | 7ms ~ | 11ms ↑7% |
| 3.9.6 | wasm | 744 | 14.0s | 131ms | 62ms | 7ms ~ | 11ms ↑7% |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Large WASM regressions unannotated in summary table

The WASM engine shows significant regressions vs 3.9.4 (the last version with build data): full build went from 7.6s → 14.0s (~84% slower) and no-op rebuild from 19ms → 131ms (~589% slower). Because 3.9.5 had null build metrics, the generation script produced no / annotations for these columns in the 3.9.6 WASM row, making the regressions invisible to casual readers of the table. It may be worth checking whether the generator should fall back to comparing against the nearest version that has build data when the immediately prior version has nulls.

Fix in Claude Code

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tracked as a generator improvement: #1043. The blank trend cells are caused by findPrevRelease returning the immediately prior release (3.9.5) which has null build/rebuild metrics, so trend() short-circuits to an empty string. The follow-up issue covers walking further back per-metric to find the nearest release with a non-null value. Worth flagging that the wasm numbers themselves may be partly environmental — the same investigation noted in #1042 about the 3.9.5 SIGKILLs is the right place to assess whether 3.9.6 wasm is a real regression or runner noise.

| 3.9.4 | native | 668 | 2.1s ↓4% | 9ms ~ | 406ms ↑7% | 6ms ↑7% | 9ms ↓15% |
| 3.9.4 | wasm | 668 | 7.6s ~ | 19ms ↑6% | 61ms ↓90% | 6ms ↑7% | 9ms ↓15% |
| 3.9.3 | native | 667 | 2.2s ↓76% | 9ms ↑13% | 380ms ↓32% | 6ms ↓5% | 11ms ↑6% |
Expand Down Expand Up @@ -55,25 +57,91 @@ Import resolution: native batch vs JS fallback throughput.

### Latest results

**Version:** 3.9.5 | **Files:** 742 | **Date:** 2026-04-23
**Version:** 3.9.6 | **Files:** 744 | **Date:** 2026-04-30
Comment on lines 57 to +60
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 3.9.5 absence no longer explained after note removal

The <!-- NOTES_START --> block that explained why 3.9.5 is absent from the top-level summary table was deleted, but 3.9.5 still has no row in that table (its JSON entry retains "wasm": null, "native": null). Anyone reading the table after this PR will see the history jump from 3.9.4 straight to 3.9.6 with no explanation. The note could either be kept as-is or condensed to a brief parenthetical on the 3.9.5 JSON entry.

Fix in Claude Code

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tracked as a generator bug rather than a fix-in-place on this auto-generated file: #1042. The note that PR #1008 added was a manual edit, but scripts/update-incremental-report.ts regenerates the file from scratch on every release and has no awareness of <!-- NOTES_START --> sentinels — so any fix here would just be wiped out by the next benchmark run. The follow-up issue covers preserving the notes block on regeneration.


#### Native (Rust)

| Metric | Value |
|--------|------:|
| Full build | 3.0s |
| No-op rebuild | 10ms |
| 1-file rebuild | 54ms |

#### WASM

| Metric | Value |
|--------|------:|
| Full build | 14.0s |
| No-op rebuild | 131ms |
| 1-file rebuild | 62ms |

#### Import Resolution

| Metric | Value |
|--------|------:|
| Import pairs | 987 |
| Import pairs | 986 |
| Native batch | 7ms |
| JS fallback | 10ms |
| JS fallback | 11ms |
| Per-import (native) | 0ms |
| Per-import (JS) | 0ms |
| Speedup ratio | 1.5x |

<!-- NOTES_START -->
**Note (3.9.5):** No build/rebuild metrics for this release (both engines null) — only import resolution data was collected. Both the WASM and native workers reached the 1-file rebuild phase and then hung past the benchmark's 10-minute per-engine timeout (see `scripts/lib/fork-engine.ts`), so each was killed (`SIGKILL`) before returning results. Import resolution is unaffected because it runs in the parent process and doesn't depend on the full build. 3.9.5 is consequently absent from the top-level version-history comparison table since there are no build-time figures to compare against prior releases. The workflow run is [here](https://github.com/optave/ops-codegraph-tool/actions/runs/24863501577); the root cause will be investigated and the numbers backfilled in a follow-up if possible.
<!-- NOTES_END -->
| Speedup ratio | 1.6x |

<!-- INCREMENTAL_BENCHMARK_DATA
[
{
"version": "3.9.6",
"date": "2026-04-30",
"files": 744,
"wasm": {
"fullBuildMs": 14036,
"noopRebuildMs": 131,
"oneFileRebuildMs": 62,
"oneFilePhases": {
"setupMs": 5.1,
"collectMs": 6.6,
"detectMs": 10,
"parseMs": 4.3,
"insertMs": 0.4,
"resolveMs": 0.5,
"edgesMs": 1.7,
"structureMs": 3.1,
"rolesMs": 25.4,
"astMs": 0.6,
"complexityMs": 0.6,
"cfgMs": 0.4,
"dataflowMs": 0.4,
"finalizeMs": 0.4
}
},
"native": {
"fullBuildMs": 2986,
"noopRebuildMs": 10,
"oneFileRebuildMs": 54,
"oneFilePhases": {
"setupMs": 2.9,
"collectMs": 4.6,
"detectMs": 3,
"parseMs": 0.3,
"insertMs": 0.3,
"resolveMs": 0.4,
"edgesMs": 5.2,
"structureMs": 4.6,
"rolesMs": 24.9,
"astMs": 0.2,
"complexityMs": 0,
"cfgMs": 0,
"dataflowMs": 0,
"finalizeMs": 0.5
}
},
"resolve": {
"imports": 986,
"nativeBatchMs": 6.5,
"jsFallbackMs": 10.5,
"perImportNativeMs": 0,
"perImportJsMs": 0
}
},
{
"version": "3.9.5",
"date": "2026-04-23",
Expand Down
Loading