Skip to content

Introduce scanning fast paths #59244

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Introduce scanning fast paths #59244

wants to merge 2 commits into from

Conversation

DanielRosenwasser
Copy link
Member

This change is an alternative PR to #59106.

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Jul 11, 2024
@DanielRosenwasser
Copy link
Member Author

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jul 11, 2024

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

Command Status Results
perf test this ✅ Started 👀 Results

@typescript-bot
Copy link
Collaborator

@DanielRosenwasser
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 - node (v18.15.0, x64)
Errors 30 30 ~ ~ ~ p=1.000 n=6
Symbols 62,153 62,153 ~ ~ ~ p=1.000 n=6
Types 50,242 50,242 ~ ~ ~ p=1.000 n=6
Memory used 192,760k (± 0.76%) 192,815k (± 0.76%) ~ 192,105k 195,785k p=0.689 n=6
Parse Time 1.57s (± 0.62%) 1.55s (± 1.89%) ~ 1.52s 1.59s p=0.192 n=6
Bind Time 0.85s (± 0.96%) 0.85s (± 1.43%) ~ 0.84s 0.87s p=0.730 n=6
Check Time 11.21s (± 0.20%) 11.17s (± 0.41%) ~ 11.12s 11.25s p=0.075 n=6
Emit Time 3.27s (± 0.70%) 3.27s (± 0.71%) ~ 3.26s 3.32s p=1.000 n=6
Total Time 16.90s (± 0.13%) 16.85s (± 0.37%) ~ 16.77s 16.93s p=0.226 n=6
angular-1 - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 944,114 944,114 ~ ~ ~ p=1.000 n=6
Types 407,050 407,050 ~ ~ ~ p=1.000 n=6
Memory used 1,218,362k (± 0.00%) 1,218,419k (± 0.00%) ~ 1,218,354k 1,218,497k p=0.054 n=6
Parse Time 7.96s (± 0.20%) 7.96s (± 0.32%) ~ 7.92s 7.98s p=0.935 n=6
Bind Time 2.24s (± 0.68%) 2.23s (± 0.49%) ~ 2.22s 2.25s p=0.618 n=6
Check Time 35.93s (± 0.58%) 35.76s (± 0.31%) ~ 35.64s 35.90s p=0.149 n=6
Emit Time 16.20s (± 0.22%) 16.24s (± 0.67%) ~ 16.17s 16.46s p=1.000 n=6
Total Time 62.32s (± 0.34%) 62.19s (± 0.25%) ~ 61.97s 62.38s p=0.196 n=6
mui-docs - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,130,296 2,130,296 ~ ~ ~ p=1.000 n=6
Types 927,656 927,656 ~ ~ ~ p=1.000 n=6
Memory used 2,107,068k (± 0.01%) 2,106,988k (± 0.00%) ~ 2,106,877k 2,107,157k p=0.230 n=6
Parse Time 9.66s (± 0.42%) 9.59s (± 0.30%) -0.07s (- 0.71%) 9.54s 9.62s p=0.024 n=6
Bind Time 3.36s (± 1.43%) 3.39s (± 1.53%) ~ 3.35s 3.49s p=0.573 n=6
Check Time 101.26s (± 1.47%) 102.67s (± 0.29%) +1.41s (+ 1.39%) 102.25s 103.10s p=0.045 n=6
Emit Time 0.20s (± 2.62%) 0.19s (± 4.29%) ~ 0.19s 0.21s p=0.533 n=6
Total Time 114.48s (± 1.29%) 115.85s (± 0.25%) ~ 115.42s 116.19s p=0.054 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,226,005 1,226,006 +1 (+ 0.00%) ~ ~ p=0.001 n=6
Types 261,615 261,615 ~ ~ ~ p=1.000 n=6
Memory used 2,338,983k (± 0.01%) 2,339,364k (± 0.02%) ~ 2,338,401k 2,339,828k p=0.128 n=6
Parse Time 7.54s (± 0.86%) 7.45s (± 0.93%) -0.09s (- 1.22%) 7.35s 7.54s p=0.045 n=6
Bind Time 2.78s (± 1.29%) 2.81s (± 0.32%) ~ 2.80s 2.82s p=0.124 n=6
Check Time 49.41s (± 0.10%) 49.55s (± 0.36%) ~ 49.35s 49.86s p=0.128 n=6
Emit Time 4.80s (± 1.40%) 4.79s (± 0.52%) ~ 4.75s 4.82s p=0.628 n=6
Total Time 64.54s (± 0.13%) 64.61s (± 0.27%) ~ 64.40s 64.91s p=0.748 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,226,005 1,226,006 +1 (+ 0.00%) ~ ~ p=0.001 n=6
Types 261,615 261,615 ~ ~ ~ p=1.000 n=6
Memory used 2,413,498k (± 0.05%) 2,413,156k (± 0.03%) ~ 2,412,624k 2,414,402k p=0.810 n=6
Parse Time 6.29s (± 0.97%) 6.27s (± 0.92%) ~ 6.17s 6.34s p=0.423 n=6
Bind Time 2.02s (± 0.68%) 2.03s (± 0.88%) ~ 2.01s 2.06s p=0.123 n=6
Check Time 40.77s (± 0.30%) 40.74s (± 0.21%) ~ 40.63s 40.84s p=0.689 n=6
Emit Time 3.89s (± 2.49%) 3.97s (± 1.51%) ~ 3.89s 4.05s p=0.172 n=6
Total Time 52.98s (± 0.38%) 53.02s (± 0.24%) ~ 52.85s 53.20s p=0.575 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 258,315 258,316 +1 (+ 0.00%) ~ ~ p=0.001 n=6
Types 104,817 104,817 ~ ~ ~ p=1.000 n=6
Memory used 427,197k (± 0.03%) 427,166k (± 0.02%) ~ 427,104k 427,289k p=1.000 n=6
Parse Time 3.30s (± 0.59%) 3.26s (± 0.68%) -0.04s (- 1.26%) 3.22s 3.28s p=0.008 n=6
Bind Time 1.31s (± 1.12%) 1.32s (± 1.05%) ~ 1.29s 1.33s p=0.738 n=6
Check Time 17.84s (± 0.55%) 17.82s (± 0.28%) ~ 17.76s 17.88s p=0.748 n=6
Emit Time 1.64s (± 1.36%) 1.64s (± 1.54%) ~ 1.61s 1.67s p=0.934 n=6
Total Time 24.09s (± 0.46%) 24.03s (± 0.27%) ~ 23.98s 24.14s p=0.470 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 224,565 224,565 ~ ~ ~ p=1.000 n=6
Types 93,734 93,734 ~ ~ ~ p=1.000 n=6
Memory used 369,545k (± 0.02%) 369,517k (± 0.03%) ~ 369,387k 369,635k p=0.575 n=6
Parse Time 3.44s (± 0.77%) 3.41s (± 0.57%) -0.03s (- 1.02%) 3.38s 3.43s p=0.035 n=6
Bind Time 1.95s (± 0.95%) 1.94s (± 0.28%) ~ 1.94s 1.95s p=0.498 n=6
Check Time 19.12s (± 0.19%) 19.17s (± 0.30%) ~ 19.08s 19.23s p=0.146 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 24.52s (± 0.18%) 24.52s (± 0.27%) ~ 24.41s 24.60s p=0.808 n=6
vscode - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,890,434 2,890,434 ~ ~ ~ p=1.000 n=6
Types 977,956 977,956 ~ ~ ~ p=1.000 n=6
Memory used 3,054,109k (± 0.00%) 3,054,006k (± 0.00%) -103k (- 0.00%) 3,053,867k 3,054,090k p=0.013 n=6
Parse Time 11.42s (± 0.26%) 11.42s (± 0.39%) ~ 11.36s 11.47s p=1.000 n=6
Bind Time 3.55s (± 1.86%) 3.53s (± 0.15%) ~ 3.52s 3.53s p=0.560 n=6
Check Time 66.21s (± 2.69%) 63.73s (± 0.17%) 🟩-2.48s (- 3.75%) 63.57s 63.86s p=0.005 n=6
Emit Time 18.16s (± 9.58%) 20.54s (± 1.29%) 🔻+2.38s (+13.12%) 20.25s 20.99s p=0.030 n=6
Total Time 99.35s (± 0.20%) 99.22s (± 0.28%) ~ 98.85s 99.64s p=0.335 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 267,239 267,239 ~ ~ ~ p=1.000 n=6
Types 108,815 108,815 ~ ~ ~ p=1.000 n=6
Memory used 411,832k (± 0.03%) 411,844k (± 0.02%) ~ 411,730k 411,957k p=1.000 n=6
Parse Time 4.74s (± 0.36%) 4.72s (± 0.46%) ~ 4.70s 4.75s p=0.290 n=6
Bind Time 2.07s (± 1.12%) 2.08s (± 0.79%) ~ 2.07s 2.11s p=0.406 n=6
Check Time 20.80s (± 0.35%) 20.76s (± 0.32%) ~ 20.68s 20.85s p=0.471 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 27.61s (± 0.22%) 27.57s (± 0.32%) ~ 27.49s 27.69s p=0.809 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 510,475 510,475 ~ ~ ~ p=1.000 n=6
Types 161,600 161,600 ~ ~ ~ p=1.000 n=6
Memory used 448,256k (± 0.03%) 448,004k (± 0.07%) ~ 447,586k 448,416k p=0.230 n=6
Parse Time 3.15s (± 0.42%) 3.08s (± 1.12%) -0.07s (- 2.28%) 3.03s 3.11s p=0.005 n=6
Bind Time 1.17s (± 0.88%) 1.17s (± 0.76%) ~ 1.16s 1.18s p=0.673 n=6
Check Time 17.02s (± 0.22%) 17.02s (± 0.23%) ~ 16.98s 17.08s p=1.000 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 21.34s (± 0.17%) 21.27s (± 0.31%) ~ 21.19s 21.34s p=0.075 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Compiler-Unions - node (v18.15.0, x64)
  • angular-1 - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-build-src-public-api - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • ts-pre-modules - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate-main - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

tsserver

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.15.0, x64)
Req 1 - updateOpen 2,300ms (± 0.29%) 2,282ms (± 0.45%) -18ms (- 0.79%) 2,267ms 2,294ms p=0.008 n=6
Req 2 - geterr 5,075ms (± 0.34%) 5,065ms (± 0.29%) ~ 5,046ms 5,079ms p=0.471 n=6
Req 3 - references 265ms (± 0.50%) 265ms (± 0.15%) ~ 264ms 265ms p=0.446 n=6
Req 4 - navto 228ms (± 0.24%) 228ms (± 0.58%) ~ 226ms 230ms p=0.663 n=6
Req 5 - completionInfo count 1,357 1,357 ~ ~ ~ p=1.000 n=6
Req 5 - completionInfo 93ms (± 2.33%) 91ms (± 5.77%) ~ 81ms 97ms p=0.388 n=6
CompilerTSServer - node (v18.15.0, x64)
Req 1 - updateOpen 2,419ms (± 1.35%) 2,392ms (± 0.80%) ~ 2,373ms 2,417ms p=0.066 n=6
Req 2 - geterr 3,789ms (± 0.31%) 3,797ms (± 0.17%) ~ 3,788ms 3,804ms p=0.377 n=6
Req 3 - references 276ms (± 0.27%) 277ms (± 0.40%) ~ 276ms 279ms p=0.195 n=6
Req 4 - navto 226ms (± 0.28%) 228ms (± 2.67%) ~ 224ms 240ms p=1.000 n=6
Req 5 - completionInfo count 1,519 1,519 ~ ~ ~ p=1.000 n=6
Req 5 - completionInfo 73ms (± 3.77%) 75ms (± 7.77%) ~ 69ms 85ms p=0.870 n=6
xstate-main-1-tsserver - node (v18.15.0, x64)
Req 1 - updateOpen 5,177ms (± 0.27%) 5,142ms (± 0.22%) -35ms (- 0.68%) 5,124ms 5,153ms p=0.005 n=6
Req 2 - geterr 1,122ms (± 1.10%) 1,132ms (± 1.22%) ~ 1,115ms 1,152ms p=0.261 n=6
Req 3 - references 78ms (± 4.61%) 79ms (± 4.95%) ~ 76ms 84ms p=0.923 n=6
Req 4 - navto 458ms (± 0.70%) 457ms (± 0.16%) ~ 456ms 458ms p=1.000 n=6
Req 5 - completionInfo count 3,413 3,413 ~ ~ ~ p=1.000 n=6
Req 5 - completionInfo 836ms (± 1.38%) 838ms (± 1.17%) ~ 824ms 848ms p=0.872 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • CompilerTSServer - node (v18.15.0, x64)
  • Compiler-UnionsTSServer - node (v18.15.0, x64)
  • xstate-main-1-tsserver - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

startup

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
tsc-startup - node (v18.15.0, x64)
Execution time 157.48ms (± 0.16%) 157.51ms (± 0.17%) ~ 156.46ms 161.27ms p=0.141 n=600
tsserver-startup - node (v18.15.0, x64)
Execution time 230.93ms (± 0.16%) 230.82ms (± 0.14%) -0.11ms (- 0.05%) 229.36ms 233.55ms p=0.013 n=600
tsserverlibrary-startup - node (v18.15.0, x64)
Execution time 226.58ms (± 0.15%) 226.77ms (± 0.14%) +0.19ms (+ 0.08%) 225.34ms 229.65ms p=0.000 n=600
typescript-startup - node (v18.15.0, x64)
Execution time 225.80ms (± 0.17%) 225.99ms (± 0.18%) +0.19ms (+ 0.09%) 224.51ms 231.94ms p=0.000 n=600
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • tsc-startup - node (v18.15.0, x64)
  • tsserver-startup - node (v18.15.0, x64)
  • tsserverlibrary-startup - node (v18.15.0, x64)
  • typescript-startup - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

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