Skip to content

Introduce scanning fast paths - #59244

Closed
Daniel Rosenwasser (DanielRosenwasser) wants to merge 2 commits into
mainfrom
scanFastPaths
Closed

Introduce scanning fast paths#59244
Daniel Rosenwasser (DanielRosenwasser) wants to merge 2 commits into
mainfrom
scanFastPaths

Conversation

@DanielRosenwasser

Copy link
Copy Markdown
Member

This change is an alternative PR to #59106.

@DanielRosenwasser

Copy link
Copy Markdown
MemberAuthor

TypeScript Bot (@typescript-bot) perf test this

@typescript-bot

TypeScript Bot (typescript-bot) commented Jul 11, 2024

Copy link
Copy Markdown
Contributor

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

CommandStatusResults
perf test this✅ Started👀 Results

@typescript-bot

Copy link
Copy Markdown
Contributor

Daniel Rosenwasser (@DanielRosenwasser)
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
Compiler-Unions - node (v18.15.0, x64)
Errors3030~~~p=1.000 n=6
Symbols62,15362,153~~~p=1.000 n=6
Types50,24250,242~~~p=1.000 n=6
Memory used192,760k (± 0.76%)192,815k (± 0.76%)~192,105k195,785kp=0.689 n=6
Parse Time1.57s (± 0.62%)1.55s (± 1.89%)~1.52s1.59sp=0.192 n=6
Bind Time0.85s (± 0.96%)0.85s (± 1.43%)~0.84s0.87sp=0.730 n=6
Check Time11.21s (± 0.20%)11.17s (± 0.41%)~11.12s11.25sp=0.075 n=6
Emit Time3.27s (± 0.70%)3.27s (± 0.71%)~3.26s3.32sp=1.000 n=6
Total Time16.90s (± 0.13%)16.85s (± 0.37%)~16.77s16.93sp=0.226 n=6
angular-1 - node (v18.15.0, x64)
Errors55~~~p=1.000 n=6
Symbols944,114944,114~~~p=1.000 n=6
Types407,050407,050~~~p=1.000 n=6
Memory used1,218,362k (± 0.00%)1,218,419k (± 0.00%)~1,218,354k1,218,497kp=0.054 n=6
Parse Time7.96s (± 0.20%)7.96s (± 0.32%)~7.92s7.98sp=0.935 n=6
Bind Time2.24s (± 0.68%)2.23s (± 0.49%)~2.22s2.25sp=0.618 n=6
Check Time35.93s (± 0.58%)35.76s (± 0.31%)~35.64s35.90sp=0.149 n=6
Emit Time16.20s (± 0.22%)16.24s (± 0.67%)~16.17s16.46sp=1.000 n=6
Total Time62.32s (± 0.34%)62.19s (± 0.25%)~61.97s62.38sp=0.196 n=6
mui-docs - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols2,130,2962,130,296~~~p=1.000 n=6
Types927,656927,656~~~p=1.000 n=6
Memory used2,107,068k (± 0.01%)2,106,988k (± 0.00%)~2,106,877k2,107,157kp=0.230 n=6
Parse Time9.66s (± 0.42%)9.59s (± 0.30%)-0.07s (- 0.71%)9.54s9.62sp=0.024 n=6
Bind Time3.36s (± 1.43%)3.39s (± 1.53%)~3.35s3.49sp=0.573 n=6
Check Time101.26s (± 1.47%)102.67s (± 0.29%)+1.41s (+ 1.39%)102.25s103.10sp=0.045 n=6
Emit Time0.20s (± 2.62%)0.19s (± 4.29%)~0.19s0.21sp=0.533 n=6
Total Time114.48s (± 1.29%)115.85s (± 0.25%)~115.42s116.19sp=0.054 n=6
self-build-src - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols1,226,0051,226,006+1 (+ 0.00%)~~p=0.001 n=6
Types261,615261,615~~~p=1.000 n=6
Memory used2,338,983k (± 0.01%)2,339,364k (± 0.02%)~2,338,401k2,339,828kp=0.128 n=6
Parse Time7.54s (± 0.86%)7.45s (± 0.93%)-0.09s (- 1.22%)7.35s7.54sp=0.045 n=6
Bind Time2.78s (± 1.29%)2.81s (± 0.32%)~2.80s2.82sp=0.124 n=6
Check Time49.41s (± 0.10%)49.55s (± 0.36%)~49.35s49.86sp=0.128 n=6
Emit Time4.80s (± 1.40%)4.79s (± 0.52%)~4.75s4.82sp=0.628 n=6
Total Time64.54s (± 0.13%)64.61s (± 0.27%)~64.40s64.91sp=0.748 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols1,226,0051,226,006+1 (+ 0.00%)~~p=0.001 n=6
Types261,615261,615~~~p=1.000 n=6
Memory used2,413,498k (± 0.05%)2,413,156k (± 0.03%)~2,412,624k2,414,402kp=0.810 n=6
Parse Time6.29s (± 0.97%)6.27s (± 0.92%)~6.17s6.34sp=0.423 n=6
Bind Time2.02s (± 0.68%)2.03s (± 0.88%)~2.01s2.06sp=0.123 n=6
Check Time40.77s (± 0.30%)40.74s (± 0.21%)~40.63s40.84sp=0.689 n=6
Emit Time3.89s (± 2.49%)3.97s (± 1.51%)~3.89s4.05sp=0.172 n=6
Total Time52.98s (± 0.38%)53.02s (± 0.24%)~52.85s53.20sp=0.575 n=6
self-compiler - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols258,315258,316+1 (+ 0.00%)~~p=0.001 n=6
Types104,817104,817~~~p=1.000 n=6
Memory used427,197k (± 0.03%)427,166k (± 0.02%)~427,104k427,289kp=1.000 n=6
Parse Time3.30s (± 0.59%)3.26s (± 0.68%)-0.04s (- 1.26%)3.22s3.28sp=0.008 n=6
Bind Time1.31s (± 1.12%)1.32s (± 1.05%)~1.29s1.33sp=0.738 n=6
Check Time17.84s (± 0.55%)17.82s (± 0.28%)~17.76s17.88sp=0.748 n=6
Emit Time1.64s (± 1.36%)1.64s (± 1.54%)~1.61s1.67sp=0.934 n=6
Total Time24.09s (± 0.46%)24.03s (± 0.27%)~23.98s24.14sp=0.470 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors3535~~~p=1.000 n=6
Symbols224,565224,565~~~p=1.000 n=6
Types93,73493,734~~~p=1.000 n=6
Memory used369,545k (± 0.02%)369,517k (± 0.03%)~369,387k369,635kp=0.575 n=6
Parse Time3.44s (± 0.77%)3.41s (± 0.57%)-0.03s (- 1.02%)3.38s3.43sp=0.035 n=6
Bind Time1.95s (± 0.95%)1.94s (± 0.28%)~1.94s1.95sp=0.498 n=6
Check Time19.12s (± 0.19%)19.17s (± 0.30%)~19.08s19.23sp=0.146 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time24.52s (± 0.18%)24.52s (± 0.27%)~24.41s24.60sp=0.808 n=6
vscode - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols2,890,4342,890,434~~~p=1.000 n=6
Types977,956977,956~~~p=1.000 n=6
Memory used3,054,109k (± 0.00%)3,054,006k (± 0.00%)-103k (- 0.00%)3,053,867k3,054,090kp=0.013 n=6
Parse Time11.42s (± 0.26%)11.42s (± 0.39%)~11.36s11.47sp=1.000 n=6
Bind Time3.55s (± 1.86%)3.53s (± 0.15%)~3.52s3.53sp=0.560 n=6
Check Time66.21s (± 2.69%)63.73s (± 0.17%)🟩-2.48s (- 3.75%)63.57s63.86sp=0.005 n=6
Emit Time18.16s (± 9.58%)20.54s (± 1.29%)🔻+2.38s (+13.12%)20.25s20.99sp=0.030 n=6
Total Time99.35s (± 0.20%)99.22s (± 0.28%)~98.85s99.64sp=0.335 n=6
webpack - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols267,239267,239~~~p=1.000 n=6
Types108,815108,815~~~p=1.000 n=6
Memory used411,832k (± 0.03%)411,844k (± 0.02%)~411,730k411,957kp=1.000 n=6
Parse Time4.74s (± 0.36%)4.72s (± 0.46%)~4.70s4.75sp=0.290 n=6
Bind Time2.07s (± 1.12%)2.08s (± 0.79%)~2.07s2.11sp=0.406 n=6
Check Time20.80s (± 0.35%)20.76s (± 0.32%)~20.68s20.85sp=0.471 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time27.61s (± 0.22%)27.57s (± 0.32%)~27.49s27.69sp=0.809 n=6
xstate-main - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols510,475510,475~~~p=1.000 n=6
Types161,600161,600~~~p=1.000 n=6
Memory used448,256k (± 0.03%)448,004k (± 0.07%)~447,586k448,416kp=0.230 n=6
Parse Time3.15s (± 0.42%)3.08s (± 1.12%)-0.07s (- 2.28%)3.03s3.11sp=0.005 n=6
Bind Time1.17s (± 0.88%)1.17s (± 0.76%)~1.16s1.18sp=0.673 n=6
Check Time17.02s (± 0.22%)17.02s (± 0.23%)~16.98s17.08sp=1.000 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time21.34s (± 0.17%)21.27s (± 0.31%)~21.19s21.34sp=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)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

tsserver

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
Compiler-UnionsTSServer - node (v18.15.0, x64)
Req 1 - updateOpen2,300ms (± 0.29%)2,282ms (± 0.45%)-18ms (- 0.79%)2,267ms2,294msp=0.008 n=6
Req 2 - geterr5,075ms (± 0.34%)5,065ms (± 0.29%)~5,046ms5,079msp=0.471 n=6
Req 3 - references265ms (± 0.50%)265ms (± 0.15%)~264ms265msp=0.446 n=6
Req 4 - navto228ms (± 0.24%)228ms (± 0.58%)~226ms230msp=0.663 n=6
Req 5 - completionInfo count1,3571,357~~~p=1.000 n=6
Req 5 - completionInfo93ms (± 2.33%)91ms (± 5.77%)~81ms97msp=0.388 n=6
CompilerTSServer - node (v18.15.0, x64)
Req 1 - updateOpen2,419ms (± 1.35%)2,392ms (± 0.80%)~2,373ms2,417msp=0.066 n=6
Req 2 - geterr3,789ms (± 0.31%)3,797ms (± 0.17%)~3,788ms3,804msp=0.377 n=6
Req 3 - references276ms (± 0.27%)277ms (± 0.40%)~276ms279msp=0.195 n=6
Req 4 - navto226ms (± 0.28%)228ms (± 2.67%)~224ms240msp=1.000 n=6
Req 5 - completionInfo count1,5191,519~~~p=1.000 n=6
Req 5 - completionInfo73ms (± 3.77%)75ms (± 7.77%)~69ms85msp=0.870 n=6
xstate-main-1-tsserver - node (v18.15.0, x64)
Req 1 - updateOpen5,177ms (± 0.27%)5,142ms (± 0.22%)-35ms (- 0.68%)5,124ms5,153msp=0.005 n=6
Req 2 - geterr1,122ms (± 1.10%)1,132ms (± 1.22%)~1,115ms1,152msp=0.261 n=6
Req 3 - references78ms (± 4.61%)79ms (± 4.95%)~76ms84msp=0.923 n=6
Req 4 - navto458ms (± 0.70%)457ms (± 0.16%)~456ms458msp=1.000 n=6
Req 5 - completionInfo count3,4133,413~~~p=1.000 n=6
Req 5 - completionInfo836ms (± 1.38%)838ms (± 1.17%)~824ms848msp=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)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

startup

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
tsc-startup - node (v18.15.0, x64)
Execution time157.48ms (± 0.16%)157.51ms (± 0.17%)~156.46ms161.27msp=0.141 n=600
tsserver-startup - node (v18.15.0, x64)
Execution time230.93ms (± 0.16%)230.82ms (± 0.14%)-0.11ms (- 0.05%)229.36ms233.55msp=0.013 n=600
tsserverlibrary-startup - node (v18.15.0, x64)
Execution time226.58ms (± 0.15%)226.77ms (± 0.14%)+0.19ms (+ 0.08%)225.34ms229.65msp=0.000 n=600
typescript-startup - node (v18.15.0, x64)
Execution time225.80ms (± 0.17%)225.99ms (± 0.18%)+0.19ms (+ 0.09%)224.51ms231.94msp=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)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

Developer Information:

Download Benchmarks

@typescript-bot

Copy link
Copy Markdown
Contributor

With 6.0 out as the final release vehicle for this codebase, we're closing all PRs that don't fit the merge criteria for post-6.0 patches. If you think this was a mistake and this PR fits the post-6.0 patch criteria, please post to the 6.0 iteration issue with details (specifically, which PR and which patch criteria it satisfies).

Next steps for PRs:

  • For crash bugfixes or language service improvements, PRs are currently accepted at the typescript-go repo
  • Changes to type system behavior should wait until after 7.0, at which point mainline TypeScript development will resume in this repository with the Go codebase
  • Library file updates (lib.d.ts etc) continue to live in this repo or the DOM Generator repo as appropriate

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

Labels

Author: TeamFor Uncommitted BugPR for untriaged, rejected, closed or missing bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@DanielRosenwasser@typescript-bot@RyanCavanaugh