Skip to content

Count intersection property names with a plain map and slice - #64876

Open
Jake Bailey (jakebailey) wants to merge 1 commit into
microsoft:mainfrom
jakebailey:perf/intersection-name-counts
Open

Jake Bailey (jakebailey) wants to merge 1 commit into
microsoft:mainfrom
jakebailey:perf/intersection-name-counts

Conversation

@jakebailey

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

Copy link
Copy Markdown
Member
                  │   old.txt   │             new.txt              │
                  │   sec/op    │   sec/op    vs base              │
Tsc/bluesky          2.430 ± 2%   2.383 ± 3%       ~ (p=0.180 n=6)
Tsc/sentry          10.044 ± 1%   9.931 ± 2%       ~ (p=0.180 n=6)
Tsc/t3code-server    8.038 ± 1%   7.904 ± 2%  -1.67% (p=0.026 n=6)
Tsc/mui-docs         6.518 ± 2%   6.138 ± 3%  -5.83% (p=0.002 n=6)
geomean              5.980        5.821       -2.66%

                  │   old.txt    │              new.txt               │
                  │    rss-B     │    rss-B      vs base              │
Tsc/bluesky         1.189Gi ± 3%   1.176Gi ± 4%       ~ (p=0.485 n=6)
Tsc/sentry          3.271Gi ± 4%   3.215Gi ± 6%       ~ (p=0.240 n=6)
Tsc/t3code-server   2.753Gi ± 5%   2.776Gi ± 6%       ~ (p=0.937 n=6)
Tsc/mui-docs        2.362Gi ± 7%   2.314Gi ± 5%       ~ (p=0.699 n=6)
geomean             2.242Gi        2.220Gi       -0.99%

                  │   old.txt    │              new.txt               │
                  │    heap-B    │    heap-B     vs base              │
Tsc/bluesky         915.2Mi ± 0%   914.9Mi ± 0%       ~ (p=0.699 n=6)
Tsc/sentry          2.483Gi ± 0%   2.482Gi ± 0%       ~ (p=0.818 n=6)
Tsc/t3code-server   2.179Gi ± 0%   2.180Gi ± 0%       ~ (p=0.394 n=6)
Tsc/mui-docs        1.732Gi ± 0%   1.732Gi ± 0%       ~ (p=0.310 n=6)
geomean             1.701Gi        1.701Gi       -0.00%

This will conflict with #64815 to some extent

Copilot AI balanced review requested due to automatic review settings October 19, 2026 18:45
@github-project-automation github-project-automation Bot moved this to Not started in PR Backlog Oct 19, 2026
@typescript-automation typescript-automation Bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Oct 19, 2026
@jakebailey

Copy link
Copy Markdown
Member Author

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

@typescript-automation

typescript-automation Bot commented Oct 19, 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

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.

🟢 Approval recommended

Static review found no blocking issues in this localized refactor; automated validation was not run.

1 open issue
What changed in this PR

Optimizes property counting when the checker determines whether an intersection reduces to never, while preserving first-occurrence order.

Changes:

  • Replaces the ordered map with a name-to-index map and count slice.
  • Skips lookups for the first constituent’s properties.
  • Updates counting and workspace-reuse tests.
File Description
tsc/​internal/​checker/​utilities.go Implements map-and-slice property counts.
tsc/​internal/​checker/​types_test.go Adapts counting and reuse assertions.
tsc/​internal/​checker/​checker.go Uses the new counting operations during intersection reduction.

Review effort: Balanced

Comment on lines +937 to +938
entries []propertyCount
indices map[string]int32
@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,611k (± 0.07%) 113,461k (± 0.04%) -150k (- 0.13%) 113,372k 113,611k p=0.003 n=12
Memory Allocs 2,212,588 (± 0.00%) 2,212,505 (± 0.01%) ~ 2,212,245 2,212,961 p=0.266 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.039s (± 4.10%) 0.040s (± 3.57%) ~ 0.037s 0.044s p=0.480 n=12
Bind Time 0.014s (± 9.58%) 0.014s (± 8.31%) ~ 0.011s 0.017s p=0.830 n=12
Check Time 0.467s (± 0.82%) 0.471s (± 0.64%) ~ 0.465s 0.480s p=0.070 n=12
Emit Time 0.275s (± 2.12%) 0.269s (± 2.63%) ~ 0.253s 0.285s p=0.247 n=12
Total Time 0.802s (± 0.95%) 0.800s (± 0.82%) ~ 0.787s 0.818s p=0.681 n=12
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=12
Symbols 847,269 (± 0.06%) 847,364 (± 0.08%) ~ 845,490 849,037 p=0.843 n=12
Types 247,031 (± 0.00%) 247,035 (± 0.00%) +3 (+ 0.00%) 247,029 247,045 p=0.016 n=12
Memory Used 596,362k (± 0.02%) 596,381k (± 0.03%) ~ 595,851k 596,863k p=0.799 n=12
Memory Allocs 13,139,205 (± 0.03%) 13,148,114 (± 0.07%) ~ 13,134,175 13,175,783 p=0.078 n=12
Config Time 0.017s (± 1.45%) 0.017s (± 1.70%) ~ 0.016s 0.017s p=1.000 n=12
Parse Time 0.221s (± 1.77%) 0.228s (± 2.77%) ~ 0.214s 0.242s p=0.091 n=12
Bind Time 0.081s (±11.65%) 0.074s (±15.34%) ~ 0.058s 0.102s p=0.213 n=12
Check Time 0s 0s ~ ~ ~ p=1.000 n=12
Emit Time 1.561s (± 1.37%) 1.577s (± 1.32%) ~ 1.532s 1.647s p=0.325 n=12
Total Time 1.902s (± 1.39%) 1.916s (± 1.04%) ~ 1.880s 1.971s p=0.434 n=12
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=12
Symbols 4,331,983 4,331,983 ~ ~ ~ p=1.000 n=12
Types 1,370,520 1,370,520 ~ ~ ~ p=1.000 n=12
Memory Used 2,624,694k (± 0.03%) 2,626,152k (± 0.05%) ~ 2,622,356k 2,629,755k p=0.052 n=12
Memory Allocs 27,713,795 (± 0.08%) 27,713,469 (± 0.05%) ~ 27,661,441 27,738,171 p=0.671 n=12
Config Time 0.017s (± 1.70%) 0.017s (± 1.45%) ~ 0.016s 0.017s p=1.000 n=12
Parse Time 0.466s (± 3.53%) 0.478s (± 3.09%) ~ 0.440s 0.513s p=0.202 n=12
Bind Time 0.002s 0.002s ~ ~ ~ p=1.000 n=12
Check Time 7.222s (± 0.13%) 6.973s (± 0.62%) 🟩-0.249s (- 3.45%) 6.855s 7.125s p=0.000 n=12
Emit Time 0.566s (±11.48%) 0.524s (±13.72%) ~ 0.417s 0.661s p=0.352 n=12
Total Time 9.012s (± 0.82%) 8.726s (± 1.21%) 🟩-0.286s (- 3.17%) 8.532s 8.929s p=0.000 n=12
strada-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,388,680 1,388,680 ~ ~ ~ p=1.000 n=12
Types 441,862 441,862 ~ ~ ~ p=1.000 n=12
Memory Used 1,311,304k (± 0.49%) 1,316,572k (± 0.55%) ~ 1,300,268k 1,343,645k p=0.143 n=12
Memory Allocs 78,204,684 (± 0.14%) 78,244,813 (± 0.10%) ~ 77,942,738 78,401,237 p=0.671 n=12
Config Time 0.003s (±12.31%) 0.003s (± 9.48%) ~ 0.003s 0.004s p=1.000 n=12
Parse Time 0.255s (± 2.42%) 0.251s (± 1.44%) ~ 0.242s 0.260s p=0.181 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 1.679s (± 0.46%) 1.675s (± 0.52%) ~ 1.648s 1.696s p=0.451 n=12
Emit Time 0.290s (± 3.30%) 0.304s (± 3.61%) 🔻+0.015s (+ 5.06%) 0.286s 0.345s p=0.027 n=12
Total Time 19.823s (± 0.63%) 19.908s (± 0.71%) ~ 19.415s 20.223s p=0.319 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,491k (± 0.04%) 247,503k (± 0.02%) ~ 247,424k 247,698k p=1.000 n=12
Memory Allocs 4,329,337 (± 0.01%) 4,330,004 (± 0.01%) +667 (+ 0.02%) 4,328,447 4,330,998 p=0.045 n=12
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=12
Parse Time 0.112s (± 4.22%) 0.114s (± 4.07%) ~ 0.099s 0.124s p=0.400 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 0.965s (± 0.58%) 0.968s (± 0.74%) ~ 0.954s 0.985s p=0.284 n=12
Emit Time 0.146s (± 3.46%) 0.154s (± 4.88%) ~ 0.134s 0.170s p=0.070 n=12
Total Time 1.276s (± 0.74%) 1.294s (± 0.85%) +0.018s (+ 1.41%) 1.271s 1.322s p=0.027 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,252k (± 0.02%) 215,226k (± 0.02%) ~ 215,082k 215,331k p=0.272 n=12
Memory Allocs 1,401,488 (± 0.02%) 1,401,793 (± 0.01%) ~ 1,401,399 1,402,406 p=0.052 n=12
Config Time 0.000s 0.000s (±146.91%) ~ 0.000s 0.001s p=0.478 n=12
Parse Time 0.097s (± 3.48%) 0.098s (± 2.60%) ~ 0.093s 0.105s p=0.467 n=12
Bind Time 0.043s (± 6.32%) 0.042s (± 7.29%) ~ 0.032s 0.051s p=0.639 n=12
Check Time 0.745s (± 0.86%) 0.746s (± 0.57%) ~ 0.734s 0.757s p=0.898 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 0.900s (± 0.90%) 0.902s (± 0.62%) ~ 0.889s 0.918s p=0.504 n=12
vscode - native
Errors 396 396 ~ ~ ~ p=1.000 n=12
Symbols 12,501,426 12,501,426 ~ ~ ~ p=1.000 n=12
Types 4,091,299 4,091,299 ~ ~ ~ p=1.000 n=12
Memory Used 5,843,208k (± 0.01%) 5,843,893k (± 0.02%) ~ 5,841,588k 5,846,890k p=0.242 n=12
Memory Allocs 59,416,904 (± 0.01%) 59,424,090 (± 0.02%) ~ 59,410,476 59,471,687 p=0.078 n=12
Config Time 0.076s (± 0.48%) 0.076s (± 0.24%) ~ 0.076s 0.077s p=0.590 n=12
Parse Time 1.826s (± 2.06%) 1.803s (± 2.00%) ~ 1.742s 1.906s p=0.434 n=12
Bind Time 0.641s (±13.90%) 0.712s (±12.79%) ~ 0.527s 0.923s p=0.198 n=12
Check Time 14.703s (± 0.95%) 14.583s (± 0.99%) -0.119s (- 0.81%) 14.330s 14.847s p=0.050 n=12
Emit Time 5.322s (± 6.90%) 5.266s (± 6.37%) ~ 4.502s 5.920s p=0.713 n=12
Total Time 22.653s (± 1.32%) 22.531s (± 1.05%) ~ 21.993s 22.995s p=0.590 n=12
webpack - native
Errors 598 598 ~ ~ ~ p=1.000 n=12
Symbols 1,398,302 1,398,302 ~ ~ ~ p=1.000 n=12
Types 670,900 670,900 ~ ~ ~ p=1.000 n=12
Memory Used 885,544k (± 0.02%) 885,710k (± 0.02%) ~ 885,190k 885,997k p=0.114 n=12
Memory Allocs 6,928,895 (± 0.04%) 6,928,483 (± 0.03%) ~ 6,924,793 6,936,985 p=0.799 n=12
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=12
Parse Time 0.317s (± 2.37%) 0.322s (± 3.67%) ~ 0.295s 0.349s p=0.451 n=12
Bind Time 0.079s (± 7.54%) 0.077s (± 3.36%) ~ 0.070s 0.085s p=1.000 n=12
Check Time 2.968s (± 0.25%) 2.965s (± 0.50%) ~ 2.934s 3.012s p=0.486 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 3.412s (± 0.33%) 3.411s (± 0.45%) ~ 3.364s 3.445s p=0.989 n=12
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,060,810 1,060,810 ~ ~ ~ p=1.000 n=12
Types 389,671 389,671 ~ ~ ~ p=1.000 n=12
Memory Used 471,880k (± 0.02%) 471,904k (± 0.02%) ~ 471,677k 472,246k p=0.671 n=12
Memory Allocs 4,221,665 (± 0.10%) 4,222,310 (± 0.08%) ~ 4,210,454 4,229,639 p=0.755 n=12
Config Time 0.003s 0.003s (± 8.64%) ~ 0.002s 0.003s p=0.478 n=12
Parse Time 0.134s (± 3.56%) 0.140s (± 2.86%) ~ 0.125s 0.148s p=0.085 n=12
Bind Time 0.045s (±12.71%) 0.044s (±17.39%) ~ 0.033s 0.065s p=0.527 n=12
Check Time 1.093s (± 0.99%) 1.092s (± 0.93%) ~ 1.070s 1.119s p=0.921 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 1.285s (± 0.86%) 1.287s (± 1.01%) ~ 1.251s 1.316s p=0.989 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

Deciding whether an intersection reduces to never counts how many
constituents declare each property name. The ordered map used for
this is a general-purpose structure that does more bookkeeping per
operation than this hot path needs, and each property costs a lookup
and an assignment. On mui-docs this shows up as a few percent of
single-checker time.

Count into a slice of entries indexed by a plain string map instead.
The slice keeps first-occurrence order for the reduction check, and
the first constituent's names are inserted without a lookup since
property names are already unique within a type.

                  │    old     │                new                │
                  │   sec/op   │   sec/op     vs base              │
Tsc/bluesky         3.179 ± 1%   3.133 ±  1%  -1.45% (p=0.039 n=6)
Tsc/sentry          12.90 ± 7%   12.77 ± 17%       ~ (p=0.818 n=6)
Tsc/t3code-server   16.85 ± 3%   16.80 ±  3%       ~ (p=0.937 n=6)
Tsc/mui-docs        8.536 ± 3%   8.152 ±  1%  -4.50% (p=0.002 n=6)
geomean             8.763        8.604        -1.81%

                  │     old      │                new                 │
                  │    rss-B     │    rss-B      vs base              │
Tsc/bluesky         1.439Gi ± 2%   1.417Gi ± 1%       ~ (p=0.093 n=6)
Tsc/sentry          4.566Gi ± 4%   4.504Gi ± 4%       ~ (p=0.937 n=6)
Tsc/t3code-server   4.488Gi ± 5%   4.344Gi ± 9%       ~ (p=0.485 n=6)
Tsc/mui-docs        3.535Gi ± 4%   3.391Gi ± 4%       ~ (p=0.065 n=6)
geomean             3.195Gi        3.114Gi       -2.55%

                  │     old      │                new                 │
                  │    heap-B    │    heap-B     vs base              │
Tsc/bluesky         1.153Gi ± 0%   1.152Gi ± 0%       ~ (p=0.394 n=6)
Tsc/sentry          3.620Gi ± 0%   3.622Gi ± 0%       ~ (p=0.485 n=6)
Tsc/t3code-server   3.761Gi ± 0%   3.762Gi ± 0%       ~ (p=0.310 n=6)
Tsc/mui-docs        2.641Gi ± 0%   2.641Gi ± 0%       ~ (p=0.818 n=6)
geomean             2.537Gi        2.537Gi       +0.01%
@jakebailey
Jake Bailey (jakebailey) force-pushed the perf/intersection-name-counts branch from ee41271 to 4f18092 Compare October 23, 2026 22:24
@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,266k (± 0.07%) 109,206k (± 0.06%) ~ 109,078k 109,363k p=0.266 n=12
Memory Allocs 2,196,729 (± 0.00%) 2,196,699 (± 0.01%) ~ 2,196,350 2,197,251 p=0.340 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.049s (± 3.45%) 0.047s (± 4.65%) ~ 0.042s 0.054s p=0.101 n=12
Bind Time 0.017s (±10.09%) 0.017s (±10.59%) ~ 0.013s 0.021s p=0.919 n=12
Check Time 0.575s (± 0.79%) 0.578s (± 0.61%) ~ 0.569s 0.584s p=0.223 n=12
Emit Time 0.323s (± 2.74%) 0.326s (± 2.66%) ~ 0.304s 0.349s p=0.619 n=12
Total Time 0.972s (± 1.15%) 0.976s (± 1.08%) ~ 0.947s 1.001s p=0.560 n=12
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=12
Symbols 586,539 (± 0.01%) 586,410 (± 0.03%) ~ 586,027 586,782 p=0.192 n=12
Types 241,692 (± 0.00%) 241,692 (± 0.00%) ~ 241,690 241,695 p=0.928 n=12
Memory Used 551,134k (± 0.02%) 551,231k (± 0.02%) ~ 550,902k 551,564k p=0.235 n=12
Memory Allocs 13,081,109 (± 0.10%) 13,080,376 (± 0.08%) ~ 13,068,372 13,112,138 p=0.932 n=12
Config Time 0.020s (± 0.90%) 0.020s (± 1.21%) ~ 0.020s 0.021s p=1.000 n=12
Parse Time 0.280s (± 3.21%) 0.281s (± 2.93%) ~ 0.268s 0.310s p=0.810 n=12
Bind Time 0.097s (±15.97%) 0.101s (±13.27%) ~ 0.071s 0.137s p=0.876 n=12
Check Time 0s 0s ~ ~ ~ p=1.000 n=12
Emit Time 1.800s (± 1.62%) 1.808s (± 1.60%) ~ 1.733s 1.862s p=0.600 n=12
Total Time 2.218s (± 1.66%) 2.232s (± 1.46%) ~ 2.144s 2.295s p=0.451 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,170k (± 0.01%) 533,256k (± 0.01%) ~ 533,157k 533,385k p=0.062 n=12
Memory Allocs 12,771,698 (± 0.02%) 12,771,931 (± 0.02%) ~ 12,768,729 12,777,870 p=0.713 n=12
Config Time 0.003s 0.003s ~ ~ ~ p=1.000 n=12
Parse Time 0.090s (± 4.32%) 0.089s (± 3.52%) ~ 0.082s 0.096s p=0.853 n=12
Bind Time 0.025s (± 3.96%) 0.026s (±10.67%) ~ 0.023s 0.036s p=0.594 n=12
Check Time 2.160s (± 0.55%) 2.145s (± 0.68%) ~ 2.099s 2.183s p=0.124 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 2.338s (± 0.22%) 2.321s (± 0.39%) -0.018s (- 0.75%) 2.296s 2.346s p=0.002 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,200,472k (± 0.07%) 2,199,877k (± 0.08%) ~ 2,194,421k 2,204,607k p=0.551 n=12
Memory Allocs 26,472,718 (± 0.06%) 26,453,182 (± 0.06%) ~ 26,409,362 26,498,155 p=0.114 n=12
Config Time 0.020s (± 0.90%) 0.020s (± 1.40%) ~ 0.020s 0.021s p=0.590 n=12
Parse Time 0.587s (± 3.79%) 0.585s (± 2.74%) ~ 0.554s 0.640s p=0.311 n=12
Bind Time 0.003s (±10.34%) 0.003s (±10.34%) ~ 0.002s 0.003s p=1.000 n=12
Check Time 7.087s (± 0.40%) 6.825s (± 0.54%) 🟩-0.262s (- 3.70%) 6.773s 6.931s p=0.000 n=12
Emit Time 0.584s (± 5.51%) 0.566s (± 2.82%) ~ 0.506s 0.593s p=0.876 n=12
Total Time 9.213s (± 0.52%) 8.931s (± 0.42%) 🟩-0.282s (- 3.07%) 8.871s 9.062s p=0.000 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,233k (± 0.02%) 3,207,541k (± 0.06%) ~ 3,204,688k 3,214,180k p=0.590 n=12
Memory Allocs 75,231,191 (± 0.07%) 75,262,252 (± 0.08%) ~ 75,131,495 75,430,407 p=0.347 n=12
Config Time 0.060s (± 0.54%) 0.060s (± 0.41%) ~ 0.060s 0.061s p=0.193 n=12
Parse Time 1.016s (± 2.13%) 1.002s (± 2.79%) ~ 0.939s 1.065s p=0.701 n=12
Bind Time 0.288s (±13.25%) 0.349s (±13.95%) ~ 0.262s 0.451s p=0.061 n=12
Check Time 13.648s (± 0.63%) 13.658s (± 0.65%) ~ 13.462s 13.942s p=0.989 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 15.083s (± 0.66%) 15.142s (± 0.70%) ~ 14.965s 15.540s p=0.620 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,496k (± 0.01%) 1,057,581k (± 0.01%) ~ 1,057,269k 1,058,001k p=0.514 n=12
Memory Allocs 13,572,364 (± 0.17%) 13,575,144 (± 0.21%) ~ 13,527,219 13,682,457 p=0.932 n=12
Config Time 0.017s (± 1.65%) 0.017s (± 1.65%) ~ 0.017s 0.018s p=1.000 n=12
Parse Time 0.355s (± 1.69%) 0.353s (± 1.48%) ~ 0.340s 0.368s p=0.639 n=12
Bind Time 0.079s (± 5.67%) 0.078s (± 8.40%) ~ 0.069s 0.108s p=0.415 n=12
Check Time 3.310s (± 0.55%) 3.291s (± 0.56%) ~ 3.218s 3.324s p=0.103 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 3.784s (± 0.38%) 3.761s (± 0.32%) -0.023s (- 0.60%) 3.734s 3.798s p=0.015 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,281,690k (± 0.77%) 1,271,199k (± 0.35%) ~ 1,258,503k 1,286,606k p=0.089 n=12
Memory Allocs 77,391,918 (± 0.10%) 77,410,275 (± 0.10%) ~ 77,094,617 77,574,716 p=0.887 n=12
Config Time 0.004s (±12.60%) 0.004s (± 7.33%) ~ 0.004s 0.005s p=0.562 n=12
Parse Time 0.305s (± 2.07%) 0.308s (± 2.22%) ~ 0.289s 0.332s p=0.354 n=12
Bind Time 0.000s (±217.90%) 0.000s ~ ~ ~ p=1.000 n=12
Check Time 1.951s (± 0.51%) 1.950s (± 0.49%) ~ 1.931s 1.975s p=0.580 n=12
Emit Time 0.382s (± 4.33%) 0.367s (± 4.14%) ~ 0.326s 0.392s p=0.385 n=12
Total Time 23.526s (± 0.63%) 23.484s (± 0.86%) ~ 22.760s 23.845s p=0.887 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,006k (± 0.04%) 236,072k (± 0.02%) ~ 235,936k 236,224k p=0.147 n=12
Memory Allocs 4,286,993 (± 0.01%) 4,287,324 (± 0.01%) ~ 4,285,893 4,288,589 p=0.266 n=12
Config Time 0.000s (±146.91%) 0.000s (±77.74%) ~ 0.000s 0.001s p=0.371 n=12
Parse Time 0.093s (± 4.81%) 0.090s (± 4.25%) ~ 0.082s 0.100s p=0.353 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 0.788s (± 0.70%) 0.785s (± 0.52%) ~ 0.777s 0.799s p=0.258 n=12
Emit Time 0.118s (± 5.08%) 0.119s (± 4.29%) ~ 0.106s 0.131s p=0.809 n=12
Total Time 1.044s (± 0.46%) 1.038s (± 0.86%) ~ 1.013s 1.058s p=0.202 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,812k (± 0.02%) 2,610,771k (± 0.03%) ~ 2,609,346k 2,614,828k p=0.347 n=12
Memory Allocs 37,341,072 (± 0.07%) 37,335,859 (± 0.05%) ~ 37,274,645 37,385,380 p=0.671 n=12
Config Time 0.005s 0.005s ~ ~ ~ p=1.000 n=12
Parse Time 0.450s (± 2.22%) 0.449s (± 2.43%) ~ 0.420s 0.476s p=0.966 n=12
Bind Time 0.143s (±16.63%) 0.141s (±12.44%) ~ 0.115s 0.188s p=0.921 n=12
Check Time 13.661s (± 0.15%) 13.657s (± 0.36%) ~ 13.574s 13.828s p=0.486 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 14.272s (± 0.09%) 14.270s (± 0.32%) ~ 14.191s 14.432s p=0.744 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,527k (± 0.02%) 203,515k (± 0.02%) ~ 203,390k 203,572k p=0.600 n=12
Memory Allocs 1,358,561 (± 0.02%) 1,358,292 (± 0.02%) ~ 1,357,726 1,358,832 p=0.060 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.079s (± 3.27%) 0.079s (± 3.79%) ~ 0.071s 0.086s p=0.920 n=12
Bind Time 0.035s (± 9.61%) 0.031s (±10.30%) ~ 0.024s 0.039s p=0.138 n=12
Check Time 0.604s (± 0.86%) 0.605s (± 1.04%) ~ 0.592s 0.624s p=0.745 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 0.730s (± 0.55%) 0.730s (± 0.61%) ~ 0.718s 0.744s p=0.701 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,354,720k (± 0.02%) 5,354,738k (± 0.01%) ~ 5,352,733k 5,356,467k p=0.932 n=12
Memory Allocs 61,910,140 (± 0.01%) 61,905,880 (± 0.01%) ~ 61,900,158 61,918,701 p=0.671 n=12
Config Time 0.078s (± 0.54%) 0.078s (± 0.31%) ~ 0.078s 0.079s p=1.000 n=12
Parse Time 1.956s (± 2.48%) 1.953s (± 2.19%) ~ 1.833s 2.054s p=0.854 n=12
Bind Time 0.700s (±15.21%) 0.677s (±13.84%) ~ 0.547s 1.001s p=0.682 n=12
Check Time 16.999s (± 0.65%) 17.023s (± 0.65%) ~ 16.791s 17.373s p=0.682 n=12
Emit Time 5.611s (± 8.83%) 5.630s (± 8.15%) ~ 5.034s 6.704s p=0.767 n=12
Total Time 25.428s (± 1.83%) 25.445s (± 1.70%) ~ 24.810s 26.436s p=0.899 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 744,885k (± 0.02%) 745,056k (± 0.02%) ~ 744,784k 745,366k p=0.053 n=12
Memory Allocs 6,443,655 (± 0.02%) 6,442,019 (± 0.02%) -1,636 (- 0.03%) 6,439,922 6,448,318 p=0.039 n=12
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=12
Parse Time 0.317s (± 2.60%) 0.322s (± 2.42%) ~ 0.298s 0.343s p=0.354 n=12
Bind Time 0.087s (±14.50%) 0.085s (±15.67%) ~ 0.069s 0.140s p=0.485 n=12
Check Time 2.664s (± 0.47%) 2.657s (± 0.60%) ~ 2.601s 2.687s p=0.640 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 3.114s (± 0.31%) 3.111s (± 0.41%) ~ 3.067s 3.140s p=0.702 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,488k (± 0.02%) 398,540k (± 0.02%) ~ 398,325k 398,773k p=0.312 n=12
Memory Allocs 3,992,811 (± 0.07%) 3,993,073 (± 0.05%) ~ 3,988,632 3,997,246 p=0.932 n=12
Config Time 0.003s 0.003s ~ ~ ~ p=1.000 n=12
Parse Time 0.135s (± 3.53%) 0.133s (± 2.66%) ~ 0.125s 0.143s p=0.599 n=12
Bind Time 0.044s (±13.12%) 0.044s (±14.86%) ~ 0.033s 0.064s p=0.921 n=12
Check Time 0.948s (± 0.57%) 0.948s (± 0.35%) ~ 0.936s 0.957s p=0.743 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 1.137s (± 0.83%) 1.136s (± 0.67%) ~ 1.116s 1.150s p=0.559 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 (± 8.72%) 11ms (±10.16%) ~ 10ms 15ms p=0.590 n=12
Req 2 - geterr 283ms (± 0.48%) 281ms (± 0.57%) ~ 279ms 286ms p=0.093 n=12
Req 3 - references 49ms (± 2.11%) 48ms (± 1.97%) ~ 46ms 52ms p=0.354 n=12
Req 4 - navto 18ms (± 7.51%) 18ms (± 6.14%) ~ 17ms 23ms p=0.604 n=12
Req 5 - completionInfo count 1,525 1,525 ~ ~ ~ p=1.000 n=12
Req 5 - completionInfo 19ms (±10.92%) 21ms (± 8.81%) 🔻+3ms (+13.72%) 15ms 26ms p=0.043 n=12
Compiler-UnionsLSP - native
Req 1 - updateOpen 10ms (± 7.84%) 10ms (±12.61%) ~ 9ms 16ms p=0.243 n=12
Req 2 - geterr 550ms (± 0.34%) 551ms (± 0.35%) ~ 546ms 558ms p=0.305 n=12
Req 3 - references 44ms (± 5.20%) 46ms (± 4.37%) ~ 41ms 49ms p=0.196 n=12
Req 4 - navto 17ms (± 1.95%) 16ms (± 1.75%) ~ 16ms 17ms p=0.214 n=12
Req 5 - completionInfo count 1,363 1,363 ~ ~ ~ p=1.000 n=12
Req 5 - completionInfo 16ms (± 6.21%) 16ms (± 9.19%) ~ 13ms 20ms p=0.311 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

Status: Not started

Development

Successfully merging this pull request may close these issues.

2 participants