Skip to content

Index checker members without redundant symbol maps - #64781

Draft
Jake Bailey (jakebailey) wants to merge 1 commit into
mainfrom
jakebailey/mem/compact-member-indexes
Draft

Jake Bailey (jakebailey) wants to merge 1 commit into
mainfrom
jakebailey/mem/compact-member-indexes

Conversation

@jakebailey

@jakebailey Jake Bailey (jakebailey) commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Instantiated and inherited object types keep a name-to-symbol map beside their ordered property list, duplicating pointers across millions of types.

  • Uses the ordered property list as the source of truth. Small types need no index; larger types use pointer-free integer slots.
  • Keeps map semantics for mutable module exports, reserved members, mismatched names, and recursive resolution.
  • VS Code measurements showed 7.61% less retained heap and 9.89% less GC scanning.

@typescript-automation typescript-automation Bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Oct 13, 2026
@jakebailey
Jake Bailey (jakebailey) added this pull request to stack #64792 October 13, 2026 17:37
@jakebailey Jake Bailey (jakebailey) changed the title Index checker members without redundant symbol maps Index checker members without redundant symbol maps Instantiated and inherited object types keep a name-to-symbol map beside their ordered property list, duplicating pointers across millions of types. - Uses the ordered property list as the source of truth. Small types need no index; larger types use pointer-free integer slots. - Keeps map semantics for mutable module exports, reserved members, mismatched names, and recursive resolution. - VS Code measurements showed **7.61% less retained heap** and **9.89% less GC scanning**. Oct 13, 2026
@jakebailey Jake Bailey (jakebailey) changed the title Index checker members without redundant symbol maps Instantiated and inherited object types keep a name-to-symbol map beside their ordered property list, duplicating pointers across millions of types. - Uses the ordered property list as the source of truth. Small types need no index; larger types use pointer-free integer slots. - Keeps map semantics for mutable module exports, reserved members, mismatched names, and recursive resolution. - VS Code measurements showed **7.61% less retained heap** and **9.89% less GC scanning**. Index checker members without redundant symbol maps Oct 13, 2026
@jakebailey
Jake Bailey (jakebailey) marked this pull request as ready for review October 13, 2026 17:42
Copilot AI balanced review requested due to automatic review settings October 13, 2026 17:42

Copilot AI left a comment

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.

🟡 Changes recommended

Two fast paths can drop alternate map keys when one symbol appears under both canonical and mismatched names.

2 open findings
What changed in this PR

Optimizes checker member lookup by replacing redundant symbol maps with compact integer indexes while retaining fallback map semantics.

Changes:

  • Adds compact property indexing and lookup helpers.
  • Updates checker consumers to use the new representation.
  • Adds lookup, fallback, and GC tests.
File Description
tsc/​internal/​checker/​types.go Implements member indexes and lookup helpers.
tsc/​internal/​checker/​types_test.go Tests member lookup behavior.
tsc/​internal/​checker/​services.go Iterates indexed or fallback members.
tsc/​internal/​checker/​nodebuilderimpl.go Materializes member tables when copying types.
tsc/​internal/​checker/​checker.go Integrates indexes into resolution and instantiation.

🧠 Review effort: Balanced


💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread tsc/internal/checker/checker.go Outdated
Comment thread tsc/internal/checker/types.go Outdated
@jakebailey
Jake Bailey (jakebailey) marked this pull request as draft October 13, 2026 19:40
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/cold-value-symbol-links branch from 0b88a7d to 744eb18 Compare October 13, 2026 20:06
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compact-member-indexes branch from 7f33389 to 5aa1029 Compare October 13, 2026 20:06
Base automatically changed from jakebailey/mem/cold-value-symbol-links to jakebailey/mem/compressed-link-stores October 13, 2026 20:06
@jakebailey
Jake Bailey (jakebailey) removed this pull request from stack #64792 October 13, 2026 20:15
@jakebailey
Jake Bailey (jakebailey) added this pull request to stack #64805 October 13, 2026 20:16
@jakebailey
Jake Bailey (jakebailey) removed this pull request from stack #64805 October 13, 2026 20:49
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compact-member-indexes branch from 5aa1029 to 621e8f2 Compare October 13, 2026 20:50
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compressed-link-stores branch from 9fde01f to bce1b47 Compare October 13, 2026 20:50
@jakebailey
Jake Bailey (jakebailey) added this pull request to stack #64806 October 13, 2026 20:50
@jakebailey
Jake Bailey (jakebailey) requested a balanced review from Copilot October 13, 2026 21:12

Copilot AI left a comment

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.

🔵 Needs a closer look

The change affects foundational checker member resolution and warrants final human validation despite comprehensive tests.

0 open findings

2 resolved since last review

🧠 Review effort: Balanced

@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compressed-link-stores branch from bce1b47 to 83bb2cc Compare October 13, 2026 21:39
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compact-member-indexes branch from 621e8f2 to 0f3d124 Compare October 13, 2026 21:39
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compressed-link-stores branch from 83bb2cc to 3221a4d Compare October 13, 2026 22:00
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compact-member-indexes branch 2 times, most recently from 11f0df8 to 48d2bb2 Compare October 13, 2026 22:25
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compressed-link-stores branch from 3221a4d to 01cd361 Compare October 13, 2026 22:25
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compact-member-indexes branch from 48d2bb2 to f2431d1 Compare October 13, 2026 23:08
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compressed-link-stores branch from 01cd361 to 73a37ea Compare October 13, 2026 23:08
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compact-member-indexes branch from f2431d1 to d1038c7 Compare October 13, 2026 23:16
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compressed-link-stores branch from 73a37ea to 229d141 Compare October 13, 2026 23:16
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compact-member-indexes branch 3 times, most recently from bf46f3e to c4938e8 Compare October 14, 2026 02:23
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compressed-link-stores branch 2 times, most recently from 5f4000f to e4a3be8 Compare October 14, 2026 02:27
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compact-member-indexes branch from c4938e8 to 22ec779 Compare October 14, 2026 02:27
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compressed-link-stores branch from e4a3be8 to 67c649a Compare October 14, 2026 03:47
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compact-member-indexes branch from 22ec779 to 3654528 Compare October 14, 2026 03:47
@ahejlsberg
Anders Hejlsberg (ahejlsberg) force-pushed the jakebailey/mem/compact-member-indexes branch from 3654528 to 7265ad1 Compare October 14, 2026 14:14
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compressed-link-stores branch from b9d52d7 to 5f4fd97 Compare October 14, 2026 14:17
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compact-member-indexes branch 2 times, most recently from 04c2a42 to 15e8050 Compare October 14, 2026 16:02
@jakebailey
Jake Bailey (jakebailey) removed this pull request from stack #64806 October 14, 2026 16:55
@jakebailey
Jake Bailey (jakebailey) changed the base branch from jakebailey/mem/compressed-link-stores to main October 14, 2026 16:56
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compact-member-indexes branch from 15e8050 to a4b4d1d Compare October 14, 2026 16:56
@jakebailey
Jake Bailey (jakebailey) marked this pull request as ready for review October 14, 2026 16:57
@jakebailey

Copy link
Copy Markdown
Member Author

TypeScript Bot (@typescript-bot) perf test this faster

@typescript-automation

typescript-automation Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
perf test this faster ✅ Started 👀 Results

@typescript-automation

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey)
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-Unions - native
Errors 41 41 ~ ~ ~ p=1.000 n=12
Symbols 115,276 115,276 ~ ~ ~ p=1.000 n=12
Types 79,613 79,613 ~ ~ ~ p=1.000 n=12
Memory Used 113,573k (± 0.07%) 109,550k (± 0.05%) 🟩-4,023k (- 3.54%) 109,425k 109,709k p=0.000 n=12
Memory Allocs 2,212,508 (± 0.01%) 2,211,642 (± 0.01%) -866 (- 0.04%) 2,211,374 2,211,973 p=0.000 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.039s (± 3.69%) 0.042s (± 7.06%) ~ 0.037s 0.054s p=0.233 n=12
Bind Time 0.014s (± 9.56%) 0.014s (± 9.42%) ~ 0.011s 0.017s p=0.540 n=12
Check Time 0.482s (± 0.98%) 0.473s (± 0.95%) -0.009s (- 1.94%) 0.464s 0.488s p=0.005 n=12
Emit Time 0.270s (± 2.12%) 0.268s (± 1.35%) ~ 0.257s 0.276s p=0.787 n=12
Total Time 0.813s (± 0.76%) 0.804s (± 0.78%) -0.009s (- 1.10%) 0.790s 0.824s p=0.016 n=12
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=12
Symbols 846,920 (± 0.07%) 847,178 (± 0.06%) ~ 846,059 848,382 p=0.514 n=12
Types 247,032 (± 0.00%) 247,031 (± 0.00%) ~ 247,028 247,035 p=0.786 n=12
Memory Used 596,331k (± 0.02%) 565,199k (± 0.03%) 🟩-31,132k (- 5.22%) 564,805k 565,659k p=0.000 n=12
Memory Allocs 13,141,951 (± 0.05%) 13,132,052 (± 0.07%) -9,899 (- 0.08%) 13,122,085 13,173,162 p=0.003 n=12
Config Time 0.017s (± 1.95%) 0.017s (± 1.99%) ~ 0.016s 0.017s p=1.000 n=12
Parse Time 0.224s (± 2.58%) 0.223s (± 2.98%) ~ 0.211s 0.251s p=0.723 n=12
Bind Time 0.084s (±13.23%) 0.087s (±13.16%) ~ 0.060s 0.105s p=0.434 n=12
Check Time 0s 0s ~ ~ ~ p=1.000 n=12
Emit Time 1.568s (± 1.21%) 1.559s (± 1.32%) ~ 1.521s 1.628s p=0.340 n=12
Total Time 1.916s (± 0.91%) 1.904s (± 0.98%) ~ 1.869s 1.957s p=0.369 n=12
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=12
Symbols 4,331,835 4,331,835 ~ ~ ~ p=1.000 n=12
Types 1,370,520 1,370,520 ~ ~ ~ p=1.000 n=12
Memory Used 2,625,292k (± 0.06%) 2,172,460k (± 0.05%) 🟩-452,832k (-17.25%) 2,169,522k 2,174,668k p=0.000 n=12
Memory Allocs 27,705,207 (± 0.05%) 27,773,789 (± 0.08%) +68,582 (+ 0.25%) 27,724,278 27,824,137 p=0.000 n=12
Config Time 0.017s (± 1.70%) 0.017s (± 1.70%) ~ 0.016s 0.017s p=1.000 n=12
Parse Time 0.478s (± 2.25%) 0.474s (± 2.84%) ~ 0.436s 0.501s p=0.744 n=12
Bind Time 0.002s (±24.21%) 0.002s ~ ~ ~ p=1.000 n=12
Check Time 7.361s (± 0.62%) 7.323s (± 0.61%) ~ 7.161s 7.432s p=0.266 n=12
Emit Time 0.503s (±12.53%) 0.440s (± 8.48%) 🟩-0.064s (-12.61%) 0.420s 0.628s p=0.003 n=12
Total Time 9.105s (± 0.56%) 9.006s (± 0.39%) -0.100s (- 1.09%) 8.916s 9.087s p=0.001 n=12
strada-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,388,669 1,388,669 ~ ~ ~ p=1.000 n=12
Types 441,862 441,862 ~ ~ ~ p=1.000 n=12
Memory Used 1,319,822k (± 0.62%) 1,284,678k (± 0.80%) -35,144k (- 2.66%) 1,262,950k 1,310,715k p=0.000 n=12
Memory Allocs 78,278,716 (± 0.07%) 78,117,244 (± 0.10%) -161,471 (- 0.21%) 77,731,165 78,233,726 p=0.000 n=12
Config Time 0.004s (±16.26%) 0.004s (±15.23%) ~ 0.002s 0.005s p=0.482 n=12
Parse Time 0.251s (± 1.98%) 0.252s (± 1.98%) ~ 0.242s 0.266s p=0.619 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 1.747s (± 0.38%) 1.749s (± 0.32%) ~ 1.731s 1.760s p=0.486 n=12
Emit Time 0.307s (± 5.78%) 0.305s (± 4.40%) ~ 0.273s 0.340s p=0.876 n=12
Total Time 20.525s (± 0.71%) 20.417s (± 0.66%) ~ 20.025s 20.708s p=0.410 n=12
strada-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 334,953 334,953 ~ ~ ~ p=1.000 n=12
Types 197,616 197,616 ~ ~ ~ p=1.000 n=12
Memory Used 247,523k (± 0.03%) 239,085k (± 0.03%) 🟩-8,438k (- 3.41%) 238,855k 239,263k p=0.000 n=12
Memory Allocs 4,329,284 (± 0.01%) 4,325,015 (± 0.02%) -4,268 (- 0.10%) 4,323,375 4,329,838 p=0.000 n=12
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=12
Parse Time 0.114s (± 5.60%) 0.117s (± 4.34%) ~ 0.104s 0.132s p=0.522 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 1.001s (± 0.63%) 1.003s (± 0.57%) ~ 0.990s 1.023s p=0.580 n=12
Emit Time 0.145s (± 7.56%) 0.147s (± 3.88%) ~ 0.136s 0.170s p=0.876 n=12
Total Time 1.317s (± 1.06%) 1.320s (± 0.73%) ~ 1.300s 1.349s p=0.681 n=12
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=12
Symbols 303,834 303,834 ~ ~ ~ p=1.000 n=12
Types 181,663 181,663 ~ ~ ~ p=1.000 n=12
Memory Used 215,269k (± 0.02%) 205,869k (± 0.02%) 🟩-9,400k (- 4.37%) 205,798k 205,976k p=0.000 n=12
Memory Allocs 1,401,630 (± 0.02%) 1,407,756 (± 0.01%) +6,126 (+ 0.44%) 1,407,311 1,408,220 p=0.000 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.098s (± 2.62%) 0.098s (± 3.53%) ~ 0.090s 0.106s p=0.966 n=12
Bind Time 0.040s (± 6.95%) 0.038s (± 5.53%) ~ 0.034s 0.044s p=0.122 n=12
Check Time 0.782s (± 0.45%) 0.799s (± 0.91%) +0.016s (+ 2.09%) 0.779s 0.817s p=0.001 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 0.936s (± 0.48%) 0.950s (± 0.68%) +0.014s (+ 1.46%) 0.933s 0.967s p=0.001 n=12
vscode - native
Errors 396 396 ~ ~ ~ p=1.000 n=12
Symbols 11,687,315 11,687,315 ~ ~ ~ p=1.000 n=12
Types 3,851,234 3,851,234 ~ ~ ~ p=1.000 n=12
Memory Used 5,515,208k (± 0.02%) 4,988,280k (± 0.02%) 🟩-526,928k (- 9.55%) 4,986,346k 4,990,566k p=0.000 n=12
Memory Allocs 56,201,117 (± 0.02%) 55,918,783 (± 0.01%) -282,334 (- 0.50%) 55,908,214 55,933,213 p=0.000 n=12
Config Time 0.075s (± 0.41%) 0.075s (± 0.43%) ~ 0.074s 0.075s p=1.000 n=12
Parse Time 1.732s (± 1.50%) 1.766s (± 1.95%) ~ 1.676s 1.853s p=0.089 n=12
Bind Time 0.690s (±11.94%) 0.591s (±11.37%) ~ 0.483s 0.822s p=0.060 n=12
Check Time 13.457s (± 1.15%) 13.457s (± 0.80%) ~ 13.231s 13.706s p=0.724 n=12
Emit Time 5.022s (± 8.34%) 5.411s (± 4.96%) ~ 4.560s 5.913s p=0.143 n=12
Total Time 21.067s (± 1.49%) 21.391s (± 1.20%) ~ 20.706s 22.092s p=0.110 n=12
webpack - native
Errors 584 584 ~ ~ ~ p=1.000 n=12
Symbols 1,299,351 1,299,351 ~ ~ ~ p=1.000 n=12
Types 598,360 598,360 ~ ~ ~ p=1.000 n=12
Memory Used 789,490k (± 0.01%) 721,694k (± 0.02%) 🟩-67,796k (- 8.59%) 721,265k 722,043k p=0.000 n=12
Memory Allocs 6,054,054 (± 0.04%) 6,045,683 (± 0.02%) -8,371 (- 0.14%) 6,042,323 6,049,949 p=0.000 n=12
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=12
Parse Time 0.300s (± 2.42%) 0.292s (± 2.65%) ~ 0.269s 0.315s p=0.065 n=12
Bind Time 0.078s (±10.39%) 0.078s (± 6.67%) ~ 0.068s 0.092s p=0.578 n=12
Check Time 1.965s (± 0.78%) 1.997s (± 0.51%) +0.032s (+ 1.63%) 1.969s 2.035s p=0.000 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 2.390s (± 0.58%) 2.415s (± 0.59%) +0.025s (+ 1.05%) 2.371s 2.457s p=0.013 n=12
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,062,854 1,062,854 ~ ~ ~ p=1.000 n=12
Types 390,845 390,845 ~ ~ ~ p=1.000 n=12
Memory Used 472,305k (± 0.03%) 414,136k (± 0.03%) 🟩-58,170k (-12.32%) 413,909k 414,439k p=0.000 n=12
Memory Allocs 4,226,958 (± 0.14%) 4,180,993 (± 0.09%) -45,964 (- 1.09%) 4,173,129 4,193,948 p=0.000 n=12
Config Time 0.003s (± 6.23%) 0.003s ~ ~ ~ p=1.000 n=12
Parse Time 0.139s (± 2.61%) 0.140s (± 3.09%) ~ 0.130s 0.151s p=0.966 n=12
Bind Time 0.039s (±11.45%) 0.046s (±18.37%) ~ 0.035s 0.069s p=0.080 n=12
Check Time 1.007s (± 1.18%) 1.035s (± 0.98%) +0.028s (+ 2.80%) 1.011s 1.058s p=0.001 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 1.194s (± 1.13%) 1.230s (± 0.75%) +0.036s (+ 3.00%) 1.197s 1.245s p=0.000 n=12
System info unknown
Hosts
  • native
Scenarios
  • Compiler-Unions - native
  • angular-1 - native
  • mui-docs - native
  • strada-build-src - native
  • strada-compiler - native
  • ts-pre-modules - native
  • vscode - native
  • webpack - native
  • xstate-main - native
Benchmark Name Iterations
Current pr 12
Baseline baseline 12

Developer Information:

Download Benchmarks

@jakebailey
Jake Bailey (jakebailey) marked this pull request as draft October 16, 2026 22:44
Lazy member resolution removed the member maps of instantiated classes
and interfaces, but anonymous, mapped, and other resolved object types
still keep a name-to-symbol map beside their ordered property list.
When every member is a named property stored under its own name, that
map duplicates the property list, and its symbol pointers and string
headers add to the live heap and to what the collector must scan.

Use the property list as the source of truth for those types. Small
types are searched directly, and larger ones get an index of
pointer-free slots. Module exports, reserved members, and tables with
other keys keep their maps.
@jakebailey
Jake Bailey (jakebailey) force-pushed the jakebailey/mem/compact-member-indexes branch from a4b4d1d to 1f6c99a Compare October 25, 2026 00:19
@jakebailey

Copy link
Copy Markdown
Member Author

TypeScript Bot (@typescript-bot) perf test

@typescript-automation

typescript-automation Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
perf test ✅ Started 👀 Results

@typescript-automation

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey)
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-Unions - native
Errors 41 41 ~ ~ ~ p=1.000 n=12
Symbols 88,466 88,466 ~ ~ ~ p=1.000 n=12
Types 79,607 79,607 ~ ~ ~ p=1.000 n=12
Memory Used 109,203k (± 0.06%) 108,700k (± 0.08%) -503k (- 0.46%) 108,533k 108,915k p=0.000 n=12
Memory Allocs 2,196,557 (± 0.00%) 2,197,244 (± 0.01%) +687 (+ 0.03%) 2,196,991 2,197,692 p=0.000 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.049s (± 2.51%) 0.048s (± 3.94%) ~ 0.043s 0.052s p=0.613 n=12
Bind Time 0.017s (± 9.35%) 0.018s (±11.00%) ~ 0.013s 0.021s p=0.674 n=12
Check Time 0.575s (± 0.75%) 0.583s (± 0.94%) +0.008s (+ 1.32%) 0.574s 0.598s p=0.040 n=12
Emit Time 0.322s (± 2.50%) 0.323s (± 2.34%) ~ 0.302s 0.338s p=0.854 n=12
Total Time 0.973s (± 0.71%) 0.981s (± 0.94%) ~ 0.963s 1.016s p=0.235 n=12
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=12
Symbols 586,591 (± 0.01%) 586,585 (± 0.02%) ~ 586,093 586,820 p=0.713 n=12
Types 241,692 (± 0.00%) 241,693 (± 0.00%) ~ 241,690 241,701 p=0.737 n=12
Memory Used 551,244k (± 0.02%) 550,835k (± 0.02%) -409k (- 0.07%) 550,601k 551,082k p=0.000 n=12
Memory Allocs 13,074,103 (± 0.06%) 13,080,860 (± 0.09%) +6,757 (+ 0.05%) 13,068,547 13,128,881 p=0.007 n=12
Config Time 0.020s (± 1.21%) 0.020s (± 1.21%) ~ 0.020s 0.021s p=1.000 n=12
Parse Time 0.277s (± 2.64%) 0.283s (± 3.34%) ~ 0.264s 0.324s p=0.311 n=12
Bind Time 0.099s (±13.53%) 0.100s (±11.91%) ~ 0.071s 0.133s p=0.944 n=12
Check Time 0s 0s ~ ~ ~ p=1.000 n=12
Emit Time 1.782s (± 1.50%) 1.796s (± 1.34%) ~ 1.736s 1.882s p=0.312 n=12
Total Time 2.200s (± 1.49%) 2.225s (± 1.32%) ~ 2.129s 2.298s p=0.103 n=12
arktype - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 685,943 685,943 ~ ~ ~ p=1.000 n=12
Types 939,490 939,490 ~ ~ ~ p=1.000 n=12
Memory Used 533,256k (± 0.01%) 522,067k (± 0.01%) -11,189k (- 2.10%) 521,900k 522,313k p=0.000 n=12
Memory Allocs 12,772,285 (± 0.02%) 12,780,417 (± 0.02%) +8,133 (+ 0.06%) 12,777,453 12,787,750 p=0.000 n=12
Config Time 0.003s (± 6.23%) 0.003s ~ ~ ~ p=1.000 n=12
Parse Time 0.088s (± 4.22%) 0.087s (± 3.24%) ~ 0.079s 0.094s p=0.921 n=12
Bind Time 0.031s (±15.82%) 0.030s (±17.05%) ~ 0.023s 0.042s p=0.443 n=12
Check Time 2.160s (± 0.66%) 2.166s (± 0.39%) ~ 2.145s 2.192s p=0.468 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 2.339s (± 0.40%) 2.335s (± 0.29%) ~ 2.321s 2.352s p=0.723 n=12
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=12
Symbols 3,784,027 3,784,027 ~ ~ ~ p=1.000 n=12
Types 1,355,982 1,355,982 ~ ~ ~ p=1.000 n=12
Memory Used 2,201,290k (± 0.05%) 2,075,731k (± 0.06%) 🟩-125,559k (- 5.70%) 2,071,925k 2,078,127k p=0.000 n=12
Memory Allocs 26,477,221 (± 0.04%) 26,482,757 (± 0.06%) ~ 26,431,010 26,520,903 p=0.410 n=12
Config Time 0.017s (± 1.45%) 0.017s (± 1.07%) ~ 0.016s 0.017s p=1.000 n=12
Parse Time 0.472s (± 3.09%) 0.470s (± 2.96%) ~ 0.438s 0.507s p=0.854 n=12
Bind Time 0.002s 0.002s (±13.36%) ~ 0.001s 0.002s p=0.478 n=12
Check Time 5.948s (± 0.28%) 5.975s (± 0.33%) ~ 5.918s 6.039s p=0.054 n=12
Emit Time 0.493s (± 8.26%) 0.460s (± 1.91%) 🟩-0.033s (- 6.63%) 0.416s 0.466s p=0.031 n=12
Total Time 7.678s (± 0.44%) 7.682s (± 0.35%) ~ 7.609s 7.746s p=0.702 n=12
sentry - native
Errors 2 2 ~ ~ ~ p=1.000 n=12
Symbols 4,793,249 4,793,249 ~ ~ ~ p=1.000 n=12
Types 2,607,051 2,607,051 ~ ~ ~ p=1.000 n=12
Memory Used 3,207,261k (± 0.04%) 3,082,091k (± 0.05%) 🟩-125,170k (- 3.90%) 3,078,504k 3,087,119k p=0.000 n=12
Memory Allocs 75,293,226 (± 0.06%) 75,338,290 (± 0.06%) ~ 75,252,714 75,533,128 p=0.114 n=12
Config Time 0.050s (± 0.65%) 0.050s (± 0.49%) ~ 0.049s 0.050s p=0.371 n=12
Parse Time 0.812s (± 2.49%) 0.820s (± 2.31%) ~ 0.769s 0.859s p=0.561 n=12
Bind Time 0.277s (±14.31%) 0.260s (±14.40%) ~ 0.214s 0.381s p=0.484 n=12
Check Time 11.677s (± 0.68%) 11.740s (± 0.78%) ~ 11.550s 12.003s p=0.285 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 12.885s (± 0.68%) 12.936s (± 0.82%) ~ 12.724s 13.256s p=0.478 n=12
social-app - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,883,075 1,883,075 ~ ~ ~ p=1.000 n=12
Types 1,158,171 1,158,171 ~ ~ ~ p=1.000 n=12
Memory Used 1,057,546k (± 0.02%) 1,024,558k (± 0.01%) 🟩-32,988k (- 3.12%) 1,024,235k 1,024,883k p=0.000 n=12
Memory Allocs 13,579,919 (± 0.13%) 13,592,055 (± 0.10%) ~ 13,563,592 13,637,108 p=0.443 n=12
Config Time 0.017s (± 1.79%) 0.017s (± 1.06%) ~ 0.017s 0.018s p=0.317 n=12
Parse Time 0.354s (± 1.89%) 0.356s (± 1.56%) ~ 0.340s 0.368s p=0.580 n=12
Bind Time 0.084s (±10.87%) 0.078s (± 4.44%) ~ 0.074s 0.091s p=0.431 n=12
Check Time 3.288s (± 0.81%) 3.312s (± 0.54%) ~ 3.264s 3.358s p=0.147 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 3.770s (± 0.46%) 3.788s (± 0.41%) ~ 3.749s 3.833s p=0.235 n=12
strada-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,184,976 1,184,976 ~ ~ ~ p=1.000 n=12
Types 438,967 438,967 ~ ~ ~ p=1.000 n=12
Memory Used 1,269,438k (± 0.63%) 1,271,124k (± 0.52%) ~ 1,252,491k 1,294,185k p=0.590 n=12
Memory Allocs 77,368,138 (± 0.15%) 77,423,884 (± 0.09%) ~ 77,112,458 77,514,018 p=0.887 n=12
Config Time 0.004s (±14.29%) 0.004s (± 9.42%) ~ 0.003s 0.005s p=0.754 n=12
Parse Time 0.310s (± 1.93%) 0.311s (± 1.88%) ~ 0.300s 0.329s p=0.854 n=12
Bind Time 0.000s (±217.90%) 0.000s ~ ~ ~ p=1.000 n=12
Check Time 1.946s (± 0.49%) 1.966s (± 0.31%) +0.020s (+ 1.04%) 1.954s 1.991s p=0.000 n=12
Emit Time 0.381s (± 3.54%) 0.371s (± 3.98%) ~ 0.312s 0.407s p=0.272 n=12
Total Time 23.607s (± 0.44%) 23.613s (± 0.67%) ~ 22.986s 24.004s p=0.843 n=12
strada-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 263,513 263,513 ~ ~ ~ p=1.000 n=12
Types 196,118 196,118 ~ ~ ~ p=1.000 n=12
Memory Used 236,086k (± 0.04%) 234,769k (± 0.03%) -1,317k (- 0.56%) 234,569k 234,899k p=0.000 n=12
Memory Allocs 4,287,251 (± 0.01%) 4,288,795 (± 0.01%) +1,544 (+ 0.04%) 4,288,054 4,289,465 p=0.000 n=12
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=12
Parse Time 0.111s (± 4.23%) 0.109s (± 2.82%) ~ 0.103s 0.121s p=0.503 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 0.944s (± 0.55%) 0.950s (± 0.46%) ~ 0.940s 0.963s p=0.061 n=12
Emit Time 0.142s (± 5.08%) 0.143s (± 4.91%) ~ 0.117s 0.155s p=0.598 n=12
Total Time 1.251s (± 0.80%) 1.259s (± 0.50%) ~ 1.243s 1.272s p=0.124 n=12
t3code-server - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 4,350,705 4,350,705 ~ ~ ~ p=1.000 n=12
Types 3,040,691 3,040,691 ~ ~ ~ p=1.000 n=12
Memory Used 2,610,827k (± 0.02%) 2,540,031k (± 0.02%) -70,797k (- 2.71%) 2,538,617k 2,542,065k p=0.000 n=12
Memory Allocs 37,334,214 (± 0.06%) 37,376,233 (± 0.05%) +42,020 (+ 0.11%) 37,334,121 37,430,776 p=0.004 n=12
Config Time 0.006s 0.006s ~ ~ ~ p=1.000 n=12
Parse Time 0.562s (± 2.64%) 0.588s (± 2.36%) 🔻+0.025s (+ 4.52%) 0.538s 0.617s p=0.013 n=12
Bind Time 0.199s (±15.80%) 0.165s (±12.64%) ~ 0.151s 0.270s p=0.223 n=12
Check Time 16.387s (± 0.32%) 16.353s (± 0.34%) ~ 16.176s 16.524s p=0.477 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 17.170s (± 0.29%) 17.127s (± 0.30%) ~ 17.003s 17.300s p=0.143 n=12
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=12
Symbols 231,617 231,617 ~ ~ ~ p=1.000 n=12
Types 181,196 181,196 ~ ~ ~ p=1.000 n=12
Memory Used 203,508k (± 0.02%) 202,186k (± 0.02%) -1,321k (- 0.65%) 202,054k 202,280k p=0.000 n=12
Memory Allocs 1,358,687 (± 0.02%) 1,359,981 (± 0.02%) +1,294 (+ 0.10%) 1,359,214 1,360,787 p=0.000 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.077s (± 3.60%) 0.077s (± 3.72%) ~ 0.070s 0.086s p=0.988 n=12
Bind Time 0.033s (±10.07%) 0.034s (± 9.54%) ~ 0.026s 0.041s p=0.680 n=12
Check Time 0.607s (± 0.95%) 0.609s (± 0.94%) ~ 0.598s 0.623s p=0.680 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 0.729s (± 0.58%) 0.732s (± 0.64%) ~ 0.722s 0.744s p=0.503 n=12
vscode - native
Errors 10 10 ~ ~ ~ p=1.000 n=12
Symbols 7,175,632 7,175,632 ~ ~ ~ p=1.000 n=12
Types 4,223,910 4,223,910 ~ ~ ~ p=1.000 n=12
Memory Used 5,355,884k (± 0.02%) 5,226,557k (± 0.02%) -129,327k (- 2.41%) 5,224,873k 5,229,040k p=0.000 n=12
Memory Allocs 61,923,867 (± 0.03%) 62,008,126 (± 0.01%) +84,258 (+ 0.14%) 61,998,076 62,032,187 p=0.000 n=12
Config Time 0.064s (± 0.38%) 0.064s (± 0.28%) ~ 0.064s 0.065s p=1.000 n=12
Parse Time 1.569s (± 2.34%) 1.533s (± 2.28%) ~ 1.467s 1.644s p=0.124 n=12
Bind Time 0.579s (±13.52%) 0.635s (±14.03%) ~ 0.454s 0.816s p=0.266 n=12
Check Time 14.332s (± 0.79%) 14.381s (± 0.63%) ~ 14.251s 14.643s p=0.340 n=12
Emit Time 4.848s (± 8.43%) 5.158s (± 8.31%) ~ 4.098s 5.695s p=0.139 n=12
Total Time 21.469s (± 1.75%) 21.851s (± 1.82%) ~ 20.784s 22.416s p=0.052 n=12
webpack - native
Errors 602 602 ~ ~ ~ p=1.000 n=12
Symbols 910,191 910,191 ~ ~ ~ p=1.000 n=12
Types 629,514 629,514 ~ ~ ~ p=1.000 n=12
Memory Used 745,108k (± 0.02%) 738,608k (± 0.02%) -6,500k (- 0.87%) 738,182k 738,814k p=0.000 n=12
Memory Allocs 6,442,672 (± 0.01%) 6,452,279 (± 0.04%) +9,607 (+ 0.15%) 6,449,026 6,460,253 p=0.000 n=12
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=12
Parse Time 0.313s (± 3.28%) 0.319s (± 3.12%) ~ 0.293s 0.343s p=0.370 n=12
Bind Time 0.077s (± 6.77%) 0.084s (±12.45%) ~ 0.071s 0.128s p=0.433 n=12
Check Time 2.683s (± 0.37%) 2.688s (± 0.43%) ~ 2.650s 2.712s p=0.451 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 3.119s (± 0.42%) 3.139s (± 0.44%) ~ 3.113s 3.181s p=0.097 n=12
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 640,494 640,494 ~ ~ ~ p=1.000 n=12
Types 387,992 387,992 ~ ~ ~ p=1.000 n=12
Memory Used 398,604k (± 0.02%) 386,020k (± 0.05%) 🟩-12,584k (- 3.16%) 385,747k 386,712k p=0.000 n=12
Memory Allocs 3,993,574 (± 0.09%) 3,998,519 (± 0.07%) +4,945 (+ 0.12%) 3,992,354 4,005,221 p=0.033 n=12
Config Time 0.003s 0.003s ~ ~ ~ p=1.000 n=12
Parse Time 0.137s (± 2.67%) 0.138s (± 4.27%) ~ 0.121s 0.152s p=0.680 n=12
Bind Time 0.037s (± 8.22%) 0.044s (±17.29%) 🔻+0.006s (+17.26%) 0.034s 0.070s p=0.043 n=12
Check Time 0.946s (± 0.64%) 0.953s (± 0.42%) +0.007s (+ 0.71%) 0.944s 0.966s p=0.043 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 1.131s (± 0.88%) 1.146s (± 0.73%) +0.015s (+ 1.30%) 1.122s 1.175s p=0.018 n=12
System info unknown
Hosts
  • native
Scenarios
  • Compiler-Unions - native
  • angular-1 - native
  • arktype - native
  • mui-docs - native
  • sentry - native
  • social-app - native
  • strada-build-src - native
  • strada-compiler - native
  • t3code-server - native
  • ts-pre-modules - native
  • vscode - native
  • webpack - native
  • xstate-main - native
Benchmark Name Iterations
Current pr 12
Baseline baseline 12

lsp

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
CompilerLSP - native
Req 1 - updateOpen 10ms (± 1.83%) 11ms (±11.30%) ~ 10ms 15ms p=0.261 n=12
Req 2 - geterr 282ms (± 0.75%) 285ms (± 0.57%) +3ms (+ 1.12%) 280ms 289ms p=0.021 n=12
Req 3 - references 49ms (± 1.61%) 49ms (± 1.73%) ~ 48ms 52ms p=0.197 n=12
Req 4 - navto 18ms (± 7.63%) 18ms (± 6.60%) ~ 16ms 23ms p=0.560 n=12
Req 5 - completionInfo count 1,525 1,525 ~ ~ ~ p=1.000 n=12
Req 5 - completionInfo 19ms (±12.63%) 20ms (±12.21%) ~ 15ms 24ms p=0.696 n=12
Compiler-UnionsLSP - native
Req 1 - updateOpen 13ms (±13.04%) 14ms (±11.89%) ~ 11ms 17ms p=0.140 n=12
Req 2 - geterr 666ms (± 0.54%) 671ms (± 0.37%) +5ms (+ 0.81%) 663ms 675ms p=0.016 n=12
Req 3 - references 56ms (± 4.90%) 54ms (± 4.99%) ~ 50ms 60ms p=0.395 n=12
Req 4 - navto 20ms (± 6.63%) 19ms (± 0.95%) ~ 19ms 20ms p=0.876 n=12
Req 5 - completionInfo count 1,363 1,363 ~ ~ ~ p=1.000 n=12
Req 5 - completionInfo 18ms (± 5.54%) 19ms (± 5.81%) ~ 16ms 21ms p=0.126 n=12
xstate-main-1-LSP - native
⚠️ Failed failed failed
System info unknown
Hosts
  • native
Scenarios
  • CompilerLSP - native
  • Compiler-UnionsLSP - native
  • xstate-main-1-LSP - native
Benchmark Name Iterations
Current pr 12
Baseline baseline 12

startup

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
lsp-startup - native
⚠️ Failed failed failed
tsgo-startup - native
⚠️ Failed failed failed
System info unknown
Hosts
  • native
Scenarios
  • lsp-startup - native
  • tsgo-startup - native
Benchmark Name Iterations
Current pr 12
Baseline baseline 12

Developer Information:

Download Benchmarks

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants