docs: update build performance benchmarks (3.1.3)#423
Conversation
Greptile SummaryThis is an automated documentation-only PR that records 3.1.3 build benchmark results, generated by the CI workflow after measuring codegraph running against its own codebase (236 files). Both Key highlights for 3.1.3 vs 3.1.2:
Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant WF as CI Workflow #286
participant CG as codegraph (self)
participant DB as SQLite DB
participant BM as BUILD-BENCHMARKS.md
participant RM as README.md
WF->>CG: Run full build (native + WASM) on own codebase
CG->>DB: Parse 236 files, store nodes/edges
CG-->>WF: Emit timing metrics per phase
WF->>WF: Compute per-file averages & % deltas vs 3.1.2
WF->>BM: Prepend 3.1.3 rows (version table, phase breakdown, incremental, queries)
WF->>BM: Append 3.1.3 JSON block to BENCHMARK_DATA
WF->>RM: Update summary table with latest 3.1.3 values
WF->>WF: Open PR #423 via github-actions[bot]
Last reviewed commit: 92c35ea |
| | Structure | 20.8 ms | 21 ms | 11 ms | 9.2 ms | | ||
| | Roles | 27.1 ms | 24.4 ms | 25.1 ms | 22.5 ms | | ||
| | AST nodes | 321.5 ms | 327.9 ms | 18.7 ms | 23.1 ms | | ||
| | Complexity | 12.6 ms | 72.6 ms | 1.3 ms | 3 ms | |
There was a problem hiding this comment.
WASM complexity phase spike warrants investigation
The WASM Complexity phase shows a dramatic increase from 5.3 ms → 72.6 ms (≈13.7× slower) compared to 3.1.2, while the native Complexity phase barely changed (13.1 ms → 12.6 ms). The WASM 1-file rebuild complexity also regressed from 0.5 ms → 3 ms (6×).
Prior to 3.1.3, native was ~2.5× slower than WASM for this phase — now WASM is ~5.8× slower than native. That polarity flip is unusual for a compute-intensive phase and may indicate:
- A code path change in 3.1.3 that exercises a WASM-unfriendly pattern (e.g., heavy cross-function calls, tight loops over large data structures)
- A cold-cache anomaly specific to the WASM JIT for this run
The overall WASM build time still improved (3.5 s → 3.4 s) because savings in other phases compensated, so this regression is masked at the top-level. If this wasn't intentional it may be worth investigating the complexity pass in the WASM engine for 3.1.3 before the numbers are taken as the new baseline.
Automated build benchmark update for 3.1.3 from workflow run #286.