Skip to content

Commit 08644a1

Browse files
docs: update performance benchmarks (3.16.0) (#2133)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: carlos-alm <127798846+carlos-alm@users.noreply.github.com>
1 parent 4a64789 commit 08644a1

4 files changed

Lines changed: 2503 additions & 101 deletions

File tree

README.md

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -644,41 +644,41 @@ Codegraph also extracts symbols from common callback patterns: Commander `.comma
644644

645645
Self-measured on every release via CI ([build benchmarks](generated/benchmarks/BUILD-BENCHMARKS.md) | [embedding benchmarks](generated/benchmarks/EMBEDDING-BENCHMARKS.md) | [query benchmarks](generated/benchmarks/QUERY-BENCHMARKS.md) | [incremental benchmarks](generated/benchmarks/INCREMENTAL-BENCHMARKS.md) | [resolution precision/recall](tests/benchmarks/resolution/)):
646646

647-
*Last updated: v3.15.0 (2026-06-23)*
647+
*Last updated: v3.16.0 (2026-07-20)*
648648

649649
| Metric | Native | WASM |
650650
|---|---|---|
651-
| Build speed | **5.8 ms/file** | **26.2 ms/file** |
652-
| Query time | **33ms** | **47ms** |
653-
| No-op rebuild | **24ms** | **24ms** |
654-
| 1-file rebuild | **117ms** | **112ms** |
655-
| Query: fn-deps | **2.4ms** | **2.2ms** |
656-
| Query: path | **2.4ms** | **2.1ms** |
657-
| ~50,000 files (est.) | **~290.0s build** | **~1310.0s build** |
658-
| Resolution precision | **93.6%** ||
659-
| Resolution recall | **64.7%** ||
651+
| Build speed | **6.9 ms/file** | **24.4 ms/file** |
652+
| Query time | **9ms** | **12ms** |
653+
| No-op rebuild | **29ms** | **29ms** |
654+
| 1-file rebuild | **193ms** | **213ms** |
655+
| Query: fn-deps | **9.7ms** | **11.2ms** |
656+
| Query: path | **12.8ms** | **11.9ms** |
657+
| ~50,000 files (est.) | **~345.0s build** | **~1220.0s build** |
658+
| Resolution precision | **94.9%** ||
659+
| Resolution recall | **66.7%** ||
660660

661661
Metrics are normalized per file for cross-version comparability. Times above are for a full initial build — incremental rebuilds only re-parse changed files.
662662

663663
<details><summary>Per-language resolution precision/recall</summary>
664664

665665
| Language | Precision | Recall | TP | FP | FN | Edges | Dynamic |
666666
|----------|----------:|-------:|---:|---:|---:|------:|--------:|
667-
| javascript | 100.0% | 100.0% | 42 | 0 | 0 | 42 | 14/32 |
668-
| typescript | 95.9% | 100.0% | 47 | 2 | 0 | 47 ||
667+
| javascript | 100.0% | 100.0% | 47 | 0 | 0 | 47 | 17/32 |
668+
| typescript | 100.0% | 100.0% | 55 | 0 | 0 | 55 ||
669669
| bash | 100.0% | 100.0% | 12 | 0 | 0 | 12 | 0/1 |
670670
| c | 100.0% | 100.0% | 9 | 0 | 0 | 9 ||
671671
| clojure | 80.0% | 26.7% | 4 | 1 | 11 | 15 ||
672672
| cpp | 100.0% | 57.1% | 8 | 0 | 6 | 14 ||
673-
| csharp | 100.0% | 100.0% | 23 | 0 | 0 | 23 ||
673+
| csharp | 100.0% | 100.0% | 25 | 0 | 0 | 25 ||
674674
| cuda | 50.0% | 33.3% | 4 | 4 | 8 | 12 ||
675-
| dart | 0.0% | 0.0% | 0 | 0 | 18 | 18 ||
675+
| dart | 0.0% | 0.0% | 0 | 0 | 21 | 21 ||
676676
| dynamic-groovy | 100.0% | 100.0% | 1 | 0 | 0 | 1 ||
677677
| dynamic-java | 100.0% | 100.0% | 1 | 0 | 0 | 1 ||
678678
| dynamic-javascript | 100.0% | 100.0% | 4 | 0 | 0 | 4 ||
679679
| dynamic-kotlin | 100.0% | 100.0% | 3 | 0 | 0 | 3 ||
680680
| dynamic-scala | 100.0% | 100.0% | 1 | 0 | 0 | 1 ||
681-
| dynamic-typescript | 100.0% | 100.0% | 3 | 0 | 0 | 3 ||
681+
| dynamic-typescript | 100.0% | 100.0% | 4 | 0 | 0 | 4 ||
682682
| elixir | 100.0% | 81.0% | 17 | 0 | 4 | 21 ||
683683
| erlang | 100.0% | 100.0% | 12 | 0 | 0 | 12 ||
684684
| fsharp | 0.0% | 0.0% | 0 | 11 | 12 | 12 ||
@@ -687,36 +687,36 @@ Metrics are normalized per file for cross-version comparability. Times above are
687687
| groovy | 100.0% | 7.7% | 1 | 0 | 12 | 13 ||
688688
| haskell | 100.0% | 33.3% | 4 | 0 | 8 | 12 ||
689689
| hcl | 0.0% | 0.0% | 0 | 0 | 2 | 2 ||
690-
| java | 100.0% | 80.0% | 16 | 0 | 4 | 20 ||
690+
| java | 100.0% | 81.0% | 17 | 0 | 4 | 21 ||
691691
| julia | 100.0% | 73.3% | 11 | 0 | 4 | 15 ||
692692
| kotlin | 92.3% | 63.2% | 12 | 1 | 7 | 19 ||
693693
| lua | 100.0% | 15.4% | 2 | 0 | 11 | 13 ||
694694
| objc | 100.0% | 46.2% | 6 | 0 | 7 | 13 ||
695695
| ocaml | 100.0% | 8.3% | 1 | 0 | 11 | 12 ||
696-
| php | 100.0% | 57.9% | 11 | 0 | 8 | 19 ||
697-
| pts-javascript | 100.0% | 100.0% | 13 | 0 | 0 | 13 ||
698-
| python | 100.0% | 60.0% | 9 | 0 | 6 | 15 | 15/15 |
696+
| php | 100.0% | 65.2% | 15 | 0 | 8 | 23 ||
697+
| pts-javascript | 100.0% | 100.0% | 15 | 0 | 0 | 15 ||
698+
| python | 100.0% | 68.4% | 13 | 0 | 6 | 19 | 15/15 |
699699
| r | 100.0% | 100.0% | 11 | 0 | 0 | 11 ||
700700
| ruby | 100.0% | 100.0% | 11 | 0 | 0 | 11 | 11/11 |
701-
| rust | 100.0% | 64.3% | 9 | 0 | 5 | 14 | |
701+
| rust | 100.0% | 83.3% | 20 | 0 | 4 | 24 | 23/23 |
702702
| scala | 100.0% | 100.0% | 7 | 0 | 0 | 7 ||
703703
| solidity | 33.3% | 7.7% | 1 | 2 | 12 | 13 ||
704704
| swift | 81.8% | 64.3% | 9 | 2 | 5 | 14 | 9/9 |
705705
| tsx | 100.0% | 100.0% | 13 | 0 | 0 | 13 ||
706706
| verilog | 0.0% | 0.0% | 0 | 0 | 4 | 4 ||
707-
| zig | 66.7% | 13.3% | 2 | 1 | 13 | 15 ||
707+
| zig | 100.0% | 13.3% | 2 | 0 | 13 | 15 ||
708708

709709
**By resolution mode (all languages):**
710710

711711
| Mode | Resolved | Expected | Recall |
712712
|------|--------:|---------:|-------:|
713-
| receiver-typed | 35 | 112 | 31.3% |
714-
| module-function | 46 | 112 | 41.1% |
713+
| receiver-typed | 39 | 117 | 33.3% |
714+
| module-function | 49 | 115 | 42.6% |
715715
| static | 82 | 97 | 84.5% |
716-
| same-file | 68 | 90 | 75.6% |
717-
| interface-dispatched | 22 | 22 | 100.0% |
718-
| dynamic | 16 | 16 | 100.0% |
719-
| class-inheritance | 8 | 12 | 66.7% |
716+
| same-file | 69 | 91 | 75.8% |
717+
| interface-dispatched | 24 | 24 | 100.0% |
718+
| dynamic | 17 | 17 | 100.0% |
719+
| class-inheritance | 12 | 16 | 75.0% |
720720
| callback | 7 | 7 | 100.0% |
721721
| pts-spread | 4 | 4 | 100.0% |
722722
| pts-define-property | 3 | 3 | 100.0% |
@@ -726,7 +726,8 @@ Metrics are normalized per file for cross-version comparability. Times above are
726726
| pts-for-of | 2 | 2 | 100.0% |
727727
| pts-set | 2 | 2 | 100.0% |
728728
| pts-array-from | 2 | 2 | 100.0% |
729-
| trait-dispatch | 0 | 2 | 0.0% |
729+
| pts-dispatch-table | 2 | 2 | 100.0% |
730+
| trait-dispatch | 2 | 2 | 100.0% |
730731
| define-property | 1 | 1 | 100.0% |
731732
| defineProperty-accessor | 1 | 1 | 100.0% |
732733
| package-function | 1 | 1 | 100.0% |

0 commit comments

Comments
 (0)