Skip to content
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

Refactor name resolution to separate component #57974

Merged
merged 2 commits into from
Apr 11, 2024

Conversation

dragomirtitian
Copy link
Contributor

No description provided.

@jakebailey
Copy link
Member

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 27, 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

@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
Angular - node (v18.15.0, x64)
Memory used 295,624k (± 0.01%) 295,613k (± 0.02%) ~ 295,528k 295,659k p=0.810 n=6
Parse Time 3.20s (± 0.76%) 3.19s (± 0.65%) ~ 3.15s 3.20s p=0.418 n=6
Bind Time 1.00s (± 0.98%) 0.99s (± 1.04%) ~ 0.98s 1.01s p=0.437 n=6
Check Time 9.72s (± 0.47%) 9.73s (± 0.31%) ~ 9.68s 9.76s p=0.514 n=6
Emit Time 8.37s (± 0.30%) 8.38s (± 0.20%) ~ 8.35s 8.39s p=0.739 n=6
Total Time 22.29s (± 0.39%) 22.30s (± 0.19%) ~ 22.24s 22.35s p=0.810 n=6
Compiler-Unions - node (v18.15.0, x64)
Memory used 193,225k (± 0.94%) 192,596k (± 0.75%) ~ 191,961k 195,546k p=0.230 n=6
Parse Time 2.02s (± 1.64%) 2.02s (± 0.99%) ~ 1.99s 2.04s p=0.869 n=6
Bind Time 1.07s (± 0.59%) 1.08s (± 1.27%) ~ 1.07s 1.10s p=0.059 n=6
Check Time 13.93s (± 0.74%) 13.95s (± 0.35%) ~ 13.88s 14.01s p=0.748 n=6
Emit Time 3.84s (± 1.88%) 3.85s (± 0.69%) ~ 3.82s 3.90s p=0.627 n=6
Total Time 20.86s (± 0.83%) 20.91s (± 0.23%) ~ 20.83s 20.97s p=0.872 n=6
Monaco - node (v18.15.0, x64)
Memory used 347,421k (± 0.01%) 347,436k (± 0.00%) ~ 347,411k 347,456k p=0.336 n=6
Parse Time 3.01s (± 1.02%) 3.01s (± 1.30%) ~ 2.95s 3.05s p=0.519 n=6
Bind Time 1.11s (± 1.47%) 1.11s (± 0.57%) ~ 1.10s 1.12s p=0.720 n=6
Check Time 8.27s (± 0.28%) 8.30s (± 0.57%) ~ 8.25s 8.36s p=0.222 n=6
Emit Time 4.86s (± 0.62%) 4.85s (± 0.38%) ~ 4.83s 4.88s p=0.871 n=6
Total Time 17.24s (± 0.13%) 17.28s (± 0.35%) ~ 17.19s 17.34s p=0.227 n=6
TFS - node (v18.15.0, x64)
Memory used 302,789k (± 0.01%) 302,827k (± 0.01%) +38k (+ 0.01%) 302,796k 302,848k p=0.013 n=6
Parse Time 2.42s (± 1.11%) 2.40s (± 0.63%) ~ 2.38s 2.42s p=0.102 n=6
Bind Time 1.19s (± 0.43%) 1.20s (± 1.46%) ~ 1.18s 1.23s p=0.928 n=6
Check Time 7.53s (± 0.21%) 7.52s (± 0.34%) ~ 7.48s 7.54s p=0.418 n=6
Emit Time 4.25s (± 0.85%) 4.27s (± 0.72%) ~ 4.23s 4.31s p=0.419 n=6
Total Time 15.40s (± 0.38%) 15.38s (± 0.17%) ~ 15.35s 15.43s p=0.293 n=6
material-ui - node (v18.15.0, x64)
Memory used 510,053k (± 0.01%) 510,098k (± 0.00%) +45k (+ 0.01%) 510,072k 510,128k p=0.013 n=6
Parse Time 2.66s (± 0.24%) 2.66s (± 0.37%) ~ 2.65s 2.68s p=1.000 n=6
Bind Time 0.99s (± 1.28%) 0.98s (± 0.77%) ~ 0.97s 0.99s p=0.301 n=6
Check Time 17.29s (± 0.17%) 17.33s (± 0.38%) ~ 17.26s 17.44s p=0.191 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.94s (± 0.19%) 20.98s (± 0.33%) ~ 20.89s 21.08s p=0.422 n=6
mui-docs - node (v18.15.0, x64)
Memory used 1,744,377k (± 0.00%) 1,744,391k (± 0.00%) ~ 1,744,363k 1,744,425k p=0.378 n=6
Parse Time 7.81s (± 0.55%) 7.81s (± 0.68%) ~ 7.73s 7.88s p=0.873 n=6
Bind Time 2.83s (± 0.27%) 2.86s (± 1.72%) ~ 2.82s 2.95s p=0.621 n=6
Check Time 66.83s (± 0.42%) 66.81s (± 0.31%) ~ 66.53s 67.08s p=0.936 n=6
Emit Time 0.16s (± 3.95%) 0.16s (± 2.58%) ~ 0.15s 0.16s p=0.673 n=6
Total Time 77.63s (± 0.37%) 77.64s (± 0.33%) ~ 77.35s 78.07s p=0.936 n=6
self-build-src - node (v18.15.0, x64)
Memory used 2,396,208k (± 0.03%) 2,396,675k (± 0.02%) ~ 2,396,172k 2,397,759k p=0.689 n=6
Parse Time 6.01s (± 0.90%) 6.01s (± 0.79%) ~ 5.96s 6.09s p=0.936 n=6
Bind Time 2.27s (± 1.49%) 2.25s (± 1.25%) ~ 2.22s 2.30s p=0.328 n=6
Check Time 39.89s (± 0.43%) 39.94s (± 0.47%) ~ 39.71s 40.23s p=0.936 n=6
Emit Time 3.18s (± 1.79%) 3.19s (± 1.13%) ~ 3.15s 3.24s p=0.575 n=6
Total Time 51.37s (± 0.19%) 51.41s (± 0.38%) ~ 51.16s 51.68s p=0.810 n=6
self-compiler - node (v18.15.0, x64)
Memory used 415,818k (± 0.01%) 415,739k (± 0.01%) -79k (- 0.02%) 415,667k 415,769k p=0.013 n=6
Parse Time 3.32s (± 0.55%) 3.33s (± 0.98%) ~ 3.27s 3.36s p=0.167 n=6
Bind Time 1.29s (± 0.63%) 1.31s (± 0.89%) +0.02s (+ 1.68%) 1.29s 1.32s p=0.014 n=6
Check Time 18.20s (± 0.17%) 18.31s (± 0.24%) +0.11s (+ 0.63%) 18.27s 18.39s p=0.005 n=6
Emit Time 1.37s (± 1.19%) 1.38s (± 0.55%) ~ 1.37s 1.39s p=0.741 n=6
Total Time 24.18s (± 0.18%) 24.33s (± 0.26%) +0.15s (+ 0.64%) 24.23s 24.41s p=0.008 n=6
vscode - node (v18.15.0, x64)
Memory used 2,896,249k (± 0.00%) 2,896,287k (± 0.00%) ~ 2,896,201k 2,896,442k p=0.575 n=6
Parse Time 15.90s (± 0.36%) 15.88s (± 0.26%) ~ 15.84s 15.95s p=0.627 n=6
Bind Time 5.02s (± 0.67%) 5.03s (± 0.86%) ~ 4.97s 5.10s p=1.000 n=6
Check Time 87.00s (± 0.28%) 87.20s (± 0.50%) ~ 86.71s 87.81s p=0.471 n=6
Emit Time 23.61s (± 0.73%) 23.52s (± 0.49%) ~ 23.41s 23.73s p=0.261 n=6
Total Time 131.53s (± 0.29%) 131.63s (± 0.34%) ~ 131.01s 132.28s p=0.810 n=6
webpack - node (v18.15.0, x64)
Memory used 408,848k (± 0.04%) 408,803k (± 0.01%) ~ 408,728k 408,894k p=0.873 n=6
Parse Time 3.22s (± 0.47%) 3.23s (± 0.53%) ~ 3.20s 3.25s p=0.190 n=6
Bind Time 1.41s (± 0.45%) 1.41s (± 0.45%) ~ 1.40s 1.42s p=1.000 n=6
Check Time 14.28s (± 0.30%) 14.31s (± 0.46%) ~ 14.25s 14.43s p=0.629 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 18.91s (± 0.22%) 18.95s (± 0.39%) ~ 18.87s 19.08s p=0.377 n=6
xstate - node (v18.15.0, x64)
Memory used 513,430k (± 0.01%) 513,472k (± 0.01%) ~ 513,381k 513,534k p=0.230 n=6
Parse Time 3.96s (± 0.75%) 3.97s (± 1.00%) ~ 3.92s 4.04s p=0.935 n=6
Bind Time 1.88s (± 1.10%) 1.88s (± 1.10%) ~ 1.85s 1.90s p=0.565 n=6
Check Time 3.42s (± 0.48%) 3.46s (± 0.54%) +0.03s (+ 0.92%) 3.44s 3.49s p=0.020 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 6.44%) ~ 0.08s 0.09s p=0.071 n=6
Total Time 9.35s (± 0.43%) 9.40s (± 0.63%) ~ 9.32s 9.50s p=0.107 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Angular - node (v18.15.0, x64)
  • Compiler-Unions - node (v18.15.0, x64)
  • Monaco - node (v18.15.0, x64)
  • TFS - node (v18.15.0, x64)
  • material-ui - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate - 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 3,557ms (± 0.26%) 3,560ms (± 0.18%) ~ 3,547ms 3,564ms p=0.422 n=6
Req 2 - geterr 8,350ms (± 0.29%) 8,388ms (± 0.41%) ~ 8,332ms 8,426ms p=0.090 n=6
Req 3 - references 475ms (± 0.44%) 483ms (± 1.17%) +8ms (+ 1.76%) 479ms 494ms p=0.005 n=6
Req 4 - navto 407ms (± 0.10%) 408ms (± 1.12%) ~ 403ms 414ms p=1.000 n=6
Req 5 - completionInfo count 1,357 (± 0.00%) 1,357 (± 0.00%) ~ 1,357 1,357 p=1.000 n=6
Req 5 - completionInfo 130ms (± 1.23%) 121ms (± 1.34%) 🟩-9ms (- 6.55%) 119ms 123ms p=0.005 n=6
CompilerTSServer - node (v18.15.0, x64)
Req 1 - updateOpen 3,033ms (± 4.33%) 2,977ms (± 0.49%) ~ 2,958ms 2,996ms p=0.471 n=6
Req 2 - geterr 5,325ms (±11.06%) 5,310ms (±10.70%) ~ 4,932ms 6,048ms p=0.873 n=6
Req 3 - references 454ms (±10.13%) 484ms (± 8.65%) ~ 399ms 507ms p=0.089 n=6
Req 4 - navto 442ms (± 0.77%) 431ms (± 7.59%) ~ 366ms 451ms p=0.748 n=6
Req 5 - completionInfo count 1,519 (± 0.00%) 1,519 (± 0.00%) ~ 1,519 1,519 p=1.000 n=6
Req 5 - completionInfo 108ms (± 0.95%) 132ms (± 0.83%) 🔻+24ms (+21.85%) 130ms 133ms p=0.004 n=6
xstateTSServer - node (v18.15.0, x64)
Req 1 - updateOpen 2,638ms (± 0.18%) 2,637ms (± 0.28%) ~ 2,624ms 2,645ms p=1.000 n=6
Req 2 - geterr 1,755ms (± 2.56%) 1,755ms (± 2.53%) ~ 1,700ms 1,805ms p=0.936 n=6
Req 3 - references 123ms (± 7.43%) 120ms (±10.89%) ~ 101ms 130ms p=0.625 n=6
Req 4 - navto 369ms (± 0.58%) 368ms (± 1.00%) ~ 361ms 372ms p=1.000 n=6
Req 5 - completionInfo count 2,079 (± 0.00%) 2,079 (± 0.00%) ~ 2,079 2,079 p=1.000 n=6
Req 5 - completionInfo 308ms (± 1.44%) 311ms (± 2.63%) ~ 301ms 318ms p=0.629 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)
  • xstateTSServer - 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 183.21ms (± 0.17%) 183.30ms (± 0.18%) +0.09ms (+ 0.05%) 181.75ms 187.61ms p=0.005 n=600
tsserver-startup - node (v18.15.0, x64)
Execution time 277.66ms (± 0.30%) 277.76ms (± 0.28%) ~ 270.54ms 286.64ms p=0.513 n=600
tsserverlibrary-startup - node (v18.15.0, x64)
Execution time 221.88ms (± 0.23%) 221.76ms (± 0.16%) -0.12ms (- 0.05%) 220.47ms 228.00ms p=0.001 n=600
typescript-startup - node (v18.15.0, x64)
Execution time 221.20ms (± 0.17%) 221.29ms (± 0.15%) +0.10ms (+ 0.04%) 219.79ms 224.29ms p=0.001 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

@jakebailey
Copy link
Member

@typescript-bot perf test this faster

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 27, 2024

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

Command Status Results
perf test this faster ✅ Started 👀 Results

@typescript-bot
Copy link
Collaborator

@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
Angular - node (v18.15.0, x64)
Memory used 295,627k (± 0.01%) 295,636k (± 0.01%) ~ 295,597k 295,674k p=0.378 n=6
Parse Time 3.18s (± 0.74%) 3.20s (± 0.51%) ~ 3.17s 3.22s p=0.119 n=6
Bind Time 0.99s (± 0.82%) 1.00s (± 0.82%) ~ 0.99s 1.01s p=0.389 n=6
Check Time 9.73s (± 0.31%) 9.75s (± 0.18%) ~ 9.73s 9.77s p=0.624 n=6
Emit Time 8.41s (± 0.42%) 8.39s (± 0.32%) ~ 8.34s 8.42s p=0.467 n=6
Total Time 22.31s (± 0.12%) 22.33s (± 0.10%) ~ 22.30s 22.35s p=0.462 n=6
Compiler-Unions - node (v18.15.0, x64)
Memory used 193,878k (± 1.00%) 193,251k (± 0.96%) ~ 192,003k 195,678k p=0.378 n=6
Parse Time 1.63s (± 1.20%) 1.73s (± 9.72%) 🔻+0.10s (+ 5.82%) 1.64s 2.07s p=0.028 n=6
Bind Time 0.88s (± 1.24%) 0.91s (± 9.18%) ~ 0.87s 1.08s p=1.000 n=6
Check Time 11.27s (± 0.53%) 11.59s (± 6.63%) ~ 11.22s 13.16s p=0.470 n=6
Emit Time 3.15s (± 0.48%) 3.15s (± 0.38%) ~ 3.13s 3.16s p=0.563 n=6
Total Time 16.93s (± 0.46%) 17.38s (± 5.84%) ~ 16.88s 19.45s p=0.297 n=6
Monaco - node (v18.15.0, x64)
Memory used 347,401k (± 0.01%) 347,435k (± 0.01%) +35k (+ 0.01%) 347,405k 347,491k p=0.045 n=6
Parse Time 2.48s (± 0.16%) 2.48s (± 0.36%) ~ 2.47s 2.49s p=0.787 n=6
Bind Time 0.93s (± 0.00%) 0.93s (± 0.00%) ~ 0.93s 0.93s p=1.000 n=6
Check Time 7.04s (± 0.48%) 7.02s (± 0.30%) ~ 7.00s 7.06s p=0.223 n=6
Emit Time 4.06s (± 0.19%) 4.06s (± 0.19%) ~ 4.05s 4.07s p=1.000 n=6
Total Time 14.50s (± 0.27%) 14.49s (± 0.23%) ~ 14.45s 14.54s p=0.629 n=6
TFS - node (v18.15.0, x64)
Memory used 302,778k (± 0.01%) 302,830k (± 0.01%) +52k (+ 0.02%) 302,813k 302,850k p=0.020 n=6
Parse Time 2.42s (± 0.50%) 2.43s (± 0.93%) ~ 2.40s 2.46s p=0.732 n=6
Bind Time 1.20s (± 1.01%) 1.20s (± 0.63%) ~ 1.19s 1.21s p=0.485 n=6
Check Time 7.50s (± 0.25%) 7.50s (± 0.52%) ~ 7.47s 7.56s p=0.627 n=6
Emit Time 4.27s (± 0.69%) 4.28s (± 0.80%) ~ 4.25s 4.34s p=0.744 n=6
Total Time 15.38s (± 0.15%) 15.41s (± 0.39%) ~ 15.35s 15.48s p=0.808 n=6
material-ui - node (v18.15.0, x64)
Memory used 510,028k (± 0.01%) 510,119k (± 0.00%) +91k (+ 0.02%) 510,089k 510,139k p=0.005 n=6
Parse Time 2.66s (± 0.28%) 2.66s (± 0.19%) ~ 2.66s 2.67s p=0.241 n=6
Bind Time 0.99s (± 0.41%) 1.00s (± 0.82%) +0.01s (+ 0.84%) 0.98s 1.00s p=0.038 n=6
Check Time 17.31s (± 0.52%) 17.36s (± 0.37%) ~ 17.28s 17.43s p=0.374 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.96s (± 0.46%) 21.02s (± 0.34%) ~ 20.95s 21.10s p=0.468 n=6
mui-docs - node (v18.15.0, x64)
Memory used 1,744,404k (± 0.00%) 1,744,426k (± 0.00%) ~ 1,744,362k 1,744,475k p=0.230 n=6
Parse Time 9.64s (± 0.62%) 9.66s (± 0.93%) ~ 9.60s 9.84s p=1.000 n=6
Bind Time 3.48s (± 0.56%) 3.49s (± 1.15%) ~ 3.44s 3.53s p=0.809 n=6
Check Time 82.09s (± 0.42%) 82.02s (± 0.22%) ~ 81.80s 82.30s p=0.810 n=6
Emit Time 0.19s (± 0.00%) 0.19s (± 4.29%) ~ 0.19s 0.21s p=0.176 n=6
Total Time 95.40s (± 0.43%) 95.36s (± 0.23%) ~ 95.07s 95.66s p=1.000 n=6
self-build-src - node (v18.15.0, x64)
Memory used 2,396,528k (± 0.02%) 2,396,938k (± 0.02%) ~ 2,396,492k 2,397,390k p=0.128 n=6
Parse Time 5.98s (± 0.51%) 6.02s (± 0.52%) ~ 5.98s 6.07s p=0.066 n=6
Bind Time 2.27s (± 0.82%) 2.25s (± 0.78%) ~ 2.22s 2.27s p=0.124 n=6
Check Time 39.76s (± 0.30%) 39.64s (± 0.22%) ~ 39.53s 39.78s p=0.128 n=6
Emit Time 3.18s (± 2.23%) 3.19s (± 2.30%) ~ 3.07s 3.28s p=0.873 n=6
Total Time 51.21s (± 0.10%) 51.13s (± 0.20%) ~ 50.99s 51.30s p=0.093 n=6
self-compiler - node (v18.15.0, x64)
Memory used 415,832k (± 0.01%) 415,735k (± 0.01%) -97k (- 0.02%) 415,704k 415,780k p=0.005 n=6
Parse Time 4.13s (± 0.62%) 4.14s (± 0.24%) ~ 4.13s 4.15s p=0.404 n=6
Bind Time 1.59s (± 1.89%) 1.61s (± 0.61%) ~ 1.60s 1.62s p=0.102 n=6
Check Time 22.46s (± 0.34%) 22.55s (± 0.45%) ~ 22.38s 22.65s p=0.149 n=6
Emit Time 1.68s (± 1.68%) 1.71s (± 1.17%) ~ 1.68s 1.74s p=0.077 n=6
Total Time 29.86s (± 0.20%) 30.01s (± 0.37%) +0.14s (+ 0.48%) 29.84s 30.15s p=0.030 n=6
vscode - node (v18.15.0, x64)
Memory used 2,896,311k (± 0.00%) 2,896,242k (± 0.00%) ~ 2,896,146k 2,896,371k p=0.230 n=6
Parse Time 12.94s (± 0.28%) 12.93s (± 0.34%) ~ 12.88s 13.00s p=0.872 n=6
Bind Time 4.14s (± 0.59%) 4.14s (± 0.24%) ~ 4.13s 4.15s p=0.565 n=6
Check Time 72.16s (± 0.55%) 72.07s (± 0.45%) ~ 71.69s 72.66s p=0.748 n=6
Emit Time 20.18s (± 7.84%) 19.39s (± 0.54%) 🟩-0.79s (- 3.93%) 19.23s 19.53s p=0.016 n=6
Total Time 109.41s (± 1.80%) 108.53s (± 0.33%) ~ 108.20s 109.20s p=0.128 n=6
webpack - node (v18.15.0, x64)
Memory used 408,786k (± 0.01%) 408,798k (± 0.01%) ~ 408,720k 408,848k p=0.689 n=6
Parse Time 3.24s (± 0.46%) 3.23s (± 0.47%) ~ 3.21s 3.25s p=0.737 n=6
Bind Time 1.41s (± 0.53%) 1.41s (± 0.29%) ~ 1.40s 1.41s p=0.389 n=6
Check Time 14.28s (± 0.27%) 14.30s (± 0.26%) ~ 14.26s 14.36s p=0.292 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 18.93s (± 0.20%) 18.95s (± 0.24%) ~ 18.89s 19.01s p=0.422 n=6
xstate - node (v18.15.0, x64)
Memory used 513,557k (± 0.02%) 513,491k (± 0.01%) ~ 513,441k 513,578k p=0.471 n=6
Parse Time 4.89s (± 0.48%) 4.92s (± 0.51%) ~ 4.89s 4.95s p=0.075 n=6
Bind Time 2.30s (± 0.98%) 2.30s (± 0.90%) ~ 2.28s 2.34s p=0.569 n=6
Check Time 4.29s (± 1.07%) 4.28s (± 0.94%) ~ 4.25s 4.35s p=0.413 n=6
Emit Time 0.11s (± 0.00%) 0.11s (± 0.00%) ~ 0.11s 0.11s p=1.000 n=6
Total Time 11.60s (± 0.48%) 11.61s (± 0.33%) ~ 11.56s 11.67s p=1.000 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Angular - node (v18.15.0, x64)
  • Compiler-Unions - node (v18.15.0, x64)
  • Monaco - node (v18.15.0, x64)
  • TFS - node (v18.15.0, x64)
  • material-ui - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@DanielRosenwasser
Copy link
Member

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 28, 2024

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

Command Status Results
perf test this ✅ Started 👀 Results

// If `result === lastSelfReferenceLocation.symbol`, that means that we are somewhere inside `lastSelfReferenceLocation` looking up a name, and resolving to `lastLocation` itself.
// That means that this is a self-reference of `lastLocation`, and shouldn't count this when considering whether `lastLocation` is used.
if (isUse && result && (!lastSelfReferenceLocation || result !== lastSelfReferenceLocation.symbol)) {
result.isReferenced! |= meaning;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How safe is logic like this to exist outside of the checker/binder?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, this isn't safe at all in the first place. It's mutating a field directly on the Symbol, which will never be reset in incremental compilation in the language service, but whose value should change as the file does. I don't know how this crops up as a visible error in the language service, but it almost definitely does. But it also has for... forever? And we haven't run into it yet? So.... pass. Deal with it later?

Copy link
Member

@weswigham weswigham Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of the 3 kinds of reference tracking we are doing, this one is like number 1 most likely to be buggy, but it's only used for unused reference tracking, unlike NodeLinks["isVisible"] and NodeLinks["referenced"] both of which specifically track usages for imports in .d.ts and .js emit, respectively. So bugs in this one are probably rare to see reported, since usually they only result in missing suggestion diagnostics.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...But if you do happen to know of issues along the lines of "this isn't marked as unused after I delete the code using it in this way" it's because this field here isn't on SymbolLinks.

Copy link
Member

@DanielRosenwasser DanielRosenwasser Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to guess that it doesn't crop up as a problem because within a file that changes, we always blow away the information; in a file that stays the same, the information is still usually accurate.

I'm going to guess there's a bug to do with symbol merging across files.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we maybe also move this to a markUsage callback? I don't think this currently introduces any new bugs, since this is not called from anywhere else, and the future use I have in mind for this in the minimalist resolver will not really care about the usages.

@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
Angular - node (v18.15.0, x64)
Memory used 295,622k (± 0.01%) 295,636k (± 0.01%) ~ 295,604k 295,666k p=0.471 n=6
Parse Time 3.19s (± 0.92%) 3.19s (± 0.83%) ~ 3.16s 3.24s p=0.564 n=6
Bind Time 1.00s (± 1.26%) 0.99s (± 0.41%) ~ 0.99s 1.00s p=0.214 n=6
Check Time 9.70s (± 0.22%) 9.74s (± 0.27%) +0.04s (+ 0.43%) 9.71s 9.78s p=0.019 n=6
Emit Time 8.39s (± 0.25%) 8.39s (± 0.36%) ~ 8.37s 8.45s p=0.870 n=6
Total Time 22.27s (± 0.29%) 22.32s (± 0.20%) ~ 22.27s 22.39s p=0.107 n=6
Compiler-Unions - node (v18.15.0, x64)
Memory used 193,339k (± 0.92%) 192,673k (± 0.75%) -666k (- 0.34%) 192,065k 195,632k p=0.045 n=6
Parse Time 1.63s (± 1.42%) 1.64s (± 0.63%) ~ 1.63s 1.66s p=0.162 n=6
Bind Time 0.88s (± 0.96%) 0.88s (± 0.46%) ~ 0.87s 0.88s p=0.527 n=6
Check Time 11.24s (± 0.49%) 11.28s (± 0.49%) ~ 11.21s 11.35s p=0.296 n=6
Emit Time 3.14s (± 0.89%) 3.15s (± 1.02%) ~ 3.11s 3.20s p=0.573 n=6
Total Time 16.89s (± 0.36%) 16.96s (± 0.40%) ~ 16.85s 17.01s p=0.106 n=6
Monaco - node (v18.15.0, x64)
Memory used 347,409k (± 0.00%) 347,442k (± 0.01%) +33k (+ 0.01%) 347,417k 347,497k p=0.013 n=6
Parse Time 3.69s (± 0.66%) 3.73s (± 0.90%) +0.04s (+ 1.18%) 3.69s 3.79s p=0.029 n=6
Bind Time 1.38s (± 0.37%) 1.38s (± 1.55%) ~ 1.36s 1.42s p=0.437 n=6
Check Time 10.23s (± 0.20%) 10.19s (± 0.39%) ~ 10.16s 10.27s p=0.077 n=6
Emit Time 6.03s (± 0.24%) 6.02s (± 0.73%) ~ 5.96s 6.08s p=0.805 n=6
Total Time 21.32s (± 0.22%) 21.32s (± 0.43%) ~ 21.23s 21.45s p=0.689 n=6
TFS - node (v18.15.0, x64)
Memory used 302,778k (± 0.01%) 302,864k (± 0.01%) +86k (+ 0.03%) 302,816k 302,918k p=0.005 n=6
Parse Time 2.42s (± 1.32%) 2.40s (± 0.94%) ~ 2.36s 2.42s p=0.124 n=6
Bind Time 1.22s (± 0.96%) 1.20s (± 0.53%) -0.02s (- 1.77%) 1.19s 1.21s p=0.007 n=6
Check Time 7.50s (± 0.62%) 7.49s (± 0.49%) ~ 7.43s 7.52s p=0.744 n=6
Emit Time 4.27s (± 0.58%) 4.27s (± 0.51%) ~ 4.24s 4.30s p=0.624 n=6
Total Time 15.40s (± 0.34%) 15.36s (± 0.17%) ~ 15.32s 15.40s p=0.107 n=6
material-ui - node (v18.15.0, x64)
Memory used 510,050k (± 0.00%) 510,126k (± 0.00%) +76k (+ 0.01%) 510,106k 510,167k p=0.005 n=6
Parse Time 3.19s (± 0.55%) 3.19s (± 0.78%) ~ 3.16s 3.22s p=1.000 n=6
Bind Time 1.18s (± 0.71%) 1.19s (± 0.69%) ~ 1.18s 1.20s p=0.718 n=6
Check Time 20.63s (± 0.31%) 20.63s (± 0.13%) ~ 20.59s 20.66s p=1.000 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 25.00s (± 0.31%) 25.01s (± 0.09%) ~ 24.98s 25.04s p=0.630 n=6
mui-docs - node (v18.15.0, x64)
Memory used 1,744,677k (± 0.00%) 1,744,677k (± 0.00%) ~ 1,744,572k 1,744,765k p=0.689 n=6
Parse Time 9.61s (± 0.33%) 9.63s (± 0.75%) ~ 9.50s 9.72s p=0.295 n=6
Bind Time 3.45s (± 0.65%) 3.44s (± 0.91%) ~ 3.40s 3.48s p=0.373 n=6
Check Time 81.75s (± 0.31%) 81.90s (± 0.22%) ~ 81.69s 82.19s p=0.149 n=6
Emit Time 0.19s (± 3.33%) 0.19s (± 2.13%) ~ 0.19s 0.20s p=0.673 n=6
Total Time 95.00s (± 0.29%) 95.15s (± 0.18%) ~ 94.95s 95.46s p=0.093 n=6
self-build-src - node (v18.15.0, x64)
Memory used 2,396,900k (± 0.02%) 2,396,980k (± 0.02%) ~ 2,396,320k 2,397,873k p=0.936 n=6
Parse Time 7.46s (± 1.16%) 7.47s (± 0.75%) ~ 7.40s 7.56s p=0.810 n=6
Bind Time 2.78s (± 1.49%) 2.78s (± 1.07%) ~ 2.75s 2.82s p=1.000 n=6
Check Time 49.27s (± 0.33%) 49.45s (± 0.35%) ~ 49.27s 49.74s p=0.149 n=6
Emit Time 3.93s (± 1.37%) 3.96s (± 1.13%) ~ 3.91s 4.02s p=0.261 n=6
Total Time 63.46s (± 0.24%) 63.67s (± 0.35%) ~ 63.44s 64.06s p=0.093 n=6
self-compiler - node (v18.15.0, x64)
Memory used 416,077k (± 0.01%) 416,484k (± 0.01%) +406k (+ 0.10%) 416,396k 416,522k p=0.005 n=6
Parse Time 3.35s (± 0.74%) 3.34s (± 0.72%) ~ 3.32s 3.39s p=0.743 n=6
Bind Time 1.29s (± 0.49%) 1.31s (± 0.57%) +0.02s (+ 1.68%) 1.30s 1.32s p=0.005 n=6
Check Time 18.23s (± 0.42%) 18.28s (± 0.42%) ~ 18.17s 18.37s p=0.260 n=6
Emit Time 1.37s (± 0.75%) 1.37s (± 0.99%) ~ 1.35s 1.39s p=0.315 n=6
Total Time 24.24s (± 0.30%) 24.31s (± 0.25%) ~ 24.24s 24.38s p=0.148 n=6
vscode - node (v18.15.0, x64)
Memory used 2,898,576k (± 0.00%) 2,898,621k (± 0.00%) ~ 2,898,455k 2,898,701k p=0.065 n=6
Parse Time 10.84s (± 0.21%) 10.85s (± 0.35%) ~ 10.81s 10.91s p=1.000 n=6
Bind Time 3.46s (± 0.53%) 3.46s (± 0.43%) ~ 3.44s 3.48s p=0.806 n=6
Check Time 62.11s (± 0.39%) 62.03s (± 0.44%) ~ 61.67s 62.29s p=0.810 n=6
Emit Time 16.49s (± 0.43%) 16.48s (± 0.43%) ~ 16.34s 16.53s p=0.744 n=6
Total Time 92.91s (± 0.23%) 92.82s (± 0.33%) ~ 92.38s 93.10s p=0.810 n=6
webpack - node (v18.15.0, x64)
Memory used 408,865k (± 0.01%) 408,920k (± 0.02%) ~ 408,825k 409,063k p=0.298 n=6
Parse Time 3.88s (± 0.21%) 3.89s (± 0.27%) ~ 3.87s 3.90s p=0.437 n=6
Bind Time 1.69s (± 0.61%) 1.68s (± 0.90%) ~ 1.67s 1.71s p=0.737 n=6
Check Time 16.84s (± 0.39%) 16.82s (± 0.20%) ~ 16.79s 16.87s p=0.935 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.41s (± 0.30%) 22.39s (± 0.14%) ~ 22.36s 22.43s p=0.871 n=6
xstate - node (v18.15.0, x64)
Memory used 513,429k (± 0.02%) 513,360k (± 0.00%) ~ 513,328k 513,389k p=0.093 n=6
Parse Time 3.28s (± 0.25%) 3.29s (± 0.16%) ~ 3.28s 3.29s p=0.235 n=6
Bind Time 1.57s (± 0.63%) 1.57s (± 0.40%) ~ 1.56s 1.58s p=0.733 n=6
Check Time 2.90s (± 0.26%) 2.89s (± 0.42%) ~ 2.88s 2.91s p=0.408 n=6
Emit Time 0.07s (± 5.69%) 0.07s (± 7.03%) ~ 0.07s 0.08s p=0.595 n=6
Total Time 7.82s (± 0.11%) 7.83s (± 0.23%) ~ 7.81s 7.86s p=0.222 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Angular - node (v18.15.0, x64)
  • Compiler-Unions - node (v18.15.0, x64)
  • Monaco - node (v18.15.0, x64)
  • TFS - node (v18.15.0, x64)
  • material-ui - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate - 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,987ms (± 9.70%) 2,969ms (±10.02%) ~ 2,836ms 3,577ms p=0.065 n=6
Req 2 - geterr 7,892ms (± 7.60%) 7,474ms (± 8.39%) ~ 6,781ms 8,059ms p=0.521 n=6
Req 3 - references 454ms (± 8.59%) 440ms (±10.87%) ~ 387ms 490ms p=0.748 n=6
Req 4 - navto 390ms (± 7.46%) 404ms (± 1.24%) ~ 401ms 414ms p=0.684 n=6
Req 5 - completionInfo count 1,357 (± 0.00%) 1,357 (± 0.00%) ~ 1,357 1,357 p=1.000 n=6
Req 5 - completionInfo 136ms (± 6.05%) 122ms (± 0.52%) 🟩-14ms (-10.51%) 121ms 123ms p=0.004 n=6
CompilerTSServer - node (v18.15.0, x64)
Req 1 - updateOpen 2,534ms (± 0.89%) 2,513ms (± 0.88%) ~ 2,492ms 2,538ms p=0.173 n=6
Req 2 - geterr 4,151ms (± 0.23%) 4,173ms (± 1.64%) ~ 4,132ms 4,311ms p=0.748 n=6
Req 3 - references 333ms (± 0.35%) 335ms (± 1.05%) ~ 331ms 341ms p=0.461 n=6
Req 4 - navto 298ms (± 0.14%) 299ms (± 0.63%) ~ 295ms 300ms p=0.227 n=6
Req 5 - completionInfo count 1,519 (± 0.00%) 1,519 (± 0.00%) ~ 1,519 1,519 p=1.000 n=6
Req 5 - completionInfo 73ms (± 0.71%) 85ms (± 5.95%) 🔻+13ms (+17.43%) 76ms 89ms p=0.004 n=6
xstateTSServer - node (v18.15.0, x64)
Req 1 - updateOpen 2,633ms (± 0.27%) 2,633ms (± 0.59%) ~ 2,603ms 2,646ms p=0.520 n=6
Req 2 - geterr 1,763ms (± 2.03%) 1,738ms (± 2.88%) ~ 1,691ms 1,810ms p=0.230 n=6
Req 3 - references 107ms (± 7.81%) 123ms (± 7.31%) 🔻+16ms (+14.46%) 105ms 129ms p=0.019 n=6
Req 4 - navto 367ms (± 0.99%) 375ms (± 3.98%) ~ 366ms 405ms p=0.335 n=6
Req 5 - completionInfo count 2,079 (± 0.00%) 2,079 (± 0.00%) ~ 2,079 2,079 p=1.000 n=6
Req 5 - completionInfo 314ms (± 1.80%) 308ms (± 2.36%) ~ 299ms 316ms p=0.295 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)
  • xstateTSServer - 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 153.65ms (± 0.19%) 153.64ms (± 0.21%) ~ 152.48ms 159.23ms p=0.233 n=600
tsserver-startup - node (v18.15.0, x64)
Execution time 226.56ms (± 0.15%) 226.60ms (± 0.17%) ~ 224.91ms 230.16ms p=0.356 n=600
tsserverlibrary-startup - node (v18.15.0, x64)
Execution time 222.36ms (± 0.14%) 222.35ms (± 0.17%) ~ 221.05ms 228.38ms p=0.164 n=600
typescript-startup - node (v18.15.0, x64)
Execution time 222.74ms (± 0.17%) 222.73ms (± 0.16%) ~ 221.09ms 227.89ms p=0.892 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

@jakebailey
Copy link
Member

I guess I don't really have any other comments here; on the whole, it sure seems like a lot of checker functions needing to be passed into... I don't really have a good vision of what the next change that requires this looks like, though, to understand how impactful this is. So, soft +1 from me, and I think others know better than me 😅

@weswigham weswigham merged commit f5bc6dd into microsoft:main Apr 11, 2024
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants