Skip to content

Make perfLogger potentially undefined rather than using a noop logger #53229

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

Merged
merged 2 commits into from
Mar 15, 2023

Conversation

jakebailey
Copy link
Member

Effectively 100% of the time, ETW has not been loaded. Rather than using a noopLogger object, instead make perfLogger undefined when ETW isn't loaded, and reference with ?. just like our other tracing API. This should be faster, and hopefully observable since we trace some of our most-called APIs like file reads/writes, parsing/binding, module resolution, etc.

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Mar 13, 2023
@jakebailey
Copy link
Member Author

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 13, 2023

Heya @jakebailey, I've started to run the perf test suite on this PR at 99e167c. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

@jakebailey
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - main..53229
Metric main 53229 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 363,619k (± 0.01%) 363,613k (± 0.01%) ~ 363,557k 363,668k p=0.936 n=6
Parse Time 3.39s (± 0.57%) 3.37s (± 0.66%) ~ 3.35s 3.41s p=0.167 n=6
Bind Time 1.13s (± 1.41%) 1.12s (± 0.46%) ~ 1.12s 1.13s p=0.351 n=6
Check Time 8.66s (± 0.47%) 8.66s (± 0.21%) ~ 8.64s 8.68s p=0.685 n=6
Emit Time 7.41s (± 0.47%) 7.44s (± 0.44%) ~ 7.41s 7.49s p=0.252 n=6
Total Time 20.61s (± 0.27%) 20.59s (± 0.17%) ~ 20.54s 20.64s p=0.808 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 193,822k (± 1.63%) 192,910k (± 1.54%) ~ 190,949k 196,762k p=0.748 n=6
Parse Time 1.49s (± 0.50%) 1.49s (± 1.32%) ~ 1.45s 1.50s p=1.000 n=6
Bind Time 0.77s (± 0.53%) 0.77s (± 0.53%) ~ 0.76s 0.77s p=1.000 n=6
Check Time 9.33s (± 0.65%) 9.37s (± 0.48%) ~ 9.31s 9.42s p=0.227 n=6
Emit Time 2.73s (± 0.45%) 2.73s (± 1.28%) ~ 2.69s 2.78s p=1.000 n=6
Total Time 14.31s (± 0.41%) 14.35s (± 0.43%) ~ 14.27s 14.41s p=0.332 n=6
Monaco - node (v18.10.0, x64)
Memory used 347,468k (± 0.02%) 347,466k (± 0.01%) ~ 347,435k 347,493k p=0.748 n=6
Parse Time 2.58s (± 1.11%) 2.60s (± 0.24%) ~ 2.59s 2.61s p=0.558 n=6
Bind Time 1.01s (± 0.97%) 1.01s (± 0.88%) ~ 1.00s 1.02s p=0.798 n=6
Check Time 7.06s (± 0.53%) 7.05s (± 0.69%) ~ 7.00s 7.14s p=0.466 n=6
Emit Time 4.21s (± 0.36%) 4.23s (± 0.50%) ~ 4.20s 4.26s p=0.182 n=6
Total Time 14.87s (± 0.33%) 14.89s (± 0.31%) ~ 14.85s 14.97s p=0.936 n=6
TFS - node (v18.10.0, x64)
Memory used 300,788k (± 0.01%) 300,780k (± 0.01%) ~ 300,746k 300,818k p=0.748 n=6
Parse Time 2.06s (± 1.28%) 2.07s (± 0.90%) ~ 2.03s 2.08s p=0.326 n=6
Bind Time 1.13s (± 0.72%) 1.14s (± 0.66%) ~ 1.13s 1.15s p=0.383 n=6
Check Time 6.52s (± 0.42%) 6.50s (± 0.44%) ~ 6.46s 6.54s p=0.198 n=6
Emit Time 3.86s (± 0.81%) 3.85s (± 0.27%) ~ 3.84s 3.87s p=1.000 n=6
Total Time 13.58s (± 0.31%) 13.55s (± 0.31%) ~ 13.49s 13.62s p=0.374 n=6
material-ui - node (v18.10.0, x64)
Memory used 478,412k (± 0.01%) 478,388k (± 0.01%) ~ 478,340k 478,420k p=0.689 n=6
Parse Time 2.97s (± 2.84%) 3.03s (± 2.53%) ~ 2.92s 3.10s p=0.226 n=6
Bind Time 1.01s (± 7.96%) 0.94s (± 6.48%) ~ 0.89s 1.02s p=0.105 n=6
Check Time 17.07s (± 0.73%) 17.11s (± 0.46%) ~ 16.99s 17.23s p=0.471 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.05s (± 0.72%) 21.07s (± 0.41%) ~ 20.94s 21.19s p=0.630 n=6
xstate - node (v18.10.0, x64)
Memory used 553,222k (± 0.03%) 553,225k (± 0.02%) ~ 553,013k 553,359k p=0.936 n=6
Parse Time 3.77s (± 0.39%) 3.76s (± 0.74%) ~ 3.73s 3.81s p=0.685 n=6
Bind Time 1.68s (± 1.03%) 1.68s (± 0.65%) ~ 1.67s 1.69s p=1.000 n=6
Check Time 2.77s (± 0.60%) 2.78s (± 0.67%) ~ 2.75s 2.80s p=0.256 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 0.00%) ~ 0.08s 0.08s p=1.000 n=6
Total Time 8.30s (± 0.39%) 8.31s (± 0.46%) ~ 8.25s 8.35s p=0.575 n=6
Angular - node (v16.17.1, x64)
Memory used 362,978k (± 0.00%) 362,993k (± 0.01%) ~ 362,959k 363,032k p=0.521 n=6
Parse Time 3.52s (± 1.04%) 3.50s (± 0.33%) ~ 3.48s 3.51s p=0.370 n=6
Bind Time 1.18s (± 0.69%) 1.18s (± 0.54%) ~ 1.17s 1.19s p=0.432 n=6
Check Time 9.46s (± 0.48%) 9.44s (± 0.12%) ~ 9.43s 9.46s p=0.257 n=6
Emit Time 7.93s (± 0.54%) 7.90s (± 0.49%) ~ 7.85s 7.96s p=0.520 n=6
Total Time 22.09s (± 0.35%) 22.02s (± 0.09%) ~ 22.00s 22.06s p=0.157 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 192,698k (± 0.05%) 192,751k (± 0.04%) ~ 192,654k 192,830k p=0.575 n=6
Parse Time 1.57s (± 1.77%) 1.56s (± 1.67%) ~ 1.53s 1.59s p=0.511 n=6
Bind Time 0.82s (± 0.77%) 0.82s (± 0.63%) ~ 0.82s 0.83s p=0.386 n=6
Check Time 10.09s (± 0.49%) 10.09s (± 0.42%) ~ 10.04s 10.15s p=0.936 n=6
Emit Time 3.01s (± 0.59%) 3.00s (± 0.75%) ~ 2.98s 3.04s p=0.566 n=6
Total Time 15.49s (± 0.35%) 15.47s (± 0.43%) ~ 15.41s 15.59s p=0.421 n=6
Monaco - node (v16.17.1, x64)
Memory used 346,714k (± 0.00%) 346,714k (± 0.01%) ~ 346,680k 346,751k p=0.936 n=6
Parse Time 2.73s (± 0.64%) 2.72s (± 0.79%) ~ 2.70s 2.76s p=0.084 n=6
Bind Time 1.09s (± 0.37%) 1.10s (± 0.96%) ~ 1.08s 1.11s p=0.209 n=6
Check Time 7.76s (± 0.23%) 7.75s (± 0.42%) ~ 7.72s 7.81s p=0.295 n=6
Emit Time 4.47s (± 0.39%) 4.46s (± 0.64%) ~ 4.42s 4.50s p=0.514 n=6
Total Time 16.04s (± 0.19%) 16.02s (± 0.32%) ~ 15.95s 16.06s p=0.520 n=6
TFS - node (v16.17.1, x64)
Memory used 300,144k (± 0.01%) 300,137k (± 0.01%) ~ 300,109k 300,168k p=0.810 n=6
Parse Time 2.16s (± 0.29%) 2.17s (± 0.97%) ~ 2.15s 2.21s p=0.388 n=6
Bind Time 1.24s (± 0.61%) 1.24s (± 0.83%) ~ 1.22s 1.25s p=0.437 n=6
Check Time 7.17s (± 0.11%) 7.18s (± 0.37%) ~ 7.14s 7.22s p=0.324 n=6
Emit Time 4.31s (± 0.54%) 4.34s (± 0.34%) +0.03s (+ 0.62%) 4.32s 4.35s p=0.048 n=6
Total Time 14.89s (± 0.19%) 14.92s (± 0.29%) ~ 14.86s 14.99s p=0.125 n=6
material-ui - node (v16.17.1, x64)
Memory used 477,713k (± 0.02%) 477,750k (± 0.02%) ~ 477,611k 477,842k p=0.230 n=6
Parse Time 3.22s (± 0.44%) 3.22s (± 0.23%) ~ 3.21s 3.23s p=0.867 n=6
Bind Time 0.95s (± 1.03%) 0.96s (± 0.57%) ~ 0.95s 0.96s p=0.662 n=6
Check Time 18.14s (± 0.62%) 18.15s (± 1.23%) ~ 17.96s 18.57s p=0.872 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.32s (± 0.51%) 22.33s (± 1.01%) ~ 22.13s 22.75s p=0.810 n=6
xstate - node (v16.17.1, x64)
Memory used 550,761k (± 0.02%) 550,726k (± 0.02%) ~ 550,594k 550,821k p=0.297 n=6
Parse Time 3.96s (± 0.23%) 3.94s (± 0.56%) ~ 3.91s 3.97s p=0.084 n=6
Bind Time 1.78s (± 0.55%) 1.79s (± 0.42%) ~ 1.78s 1.80s p=0.102 n=6
Check Time 2.99s (± 0.41%) 2.99s (± 0.66%) ~ 2.98s 3.03s p=0.461 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 8.82s (± 0.20%) 8.83s (± 0.29%) ~ 8.78s 8.85s p=0.517 n=6
Angular - node (v14.15.1, x64)
Memory used 356,843k (± 0.01%) 356,814k (± 0.00%) ~ 356,792k 356,829k p=0.575 n=6
Parse Time 3.59s (± 0.14%) 3.62s (± 0.39%) +0.03s (+ 0.93%) 3.60s 3.64s p=0.004 n=6
Bind Time 1.23s (± 0.42%) 1.24s (± 0.41%) +0.01s (+ 0.81%) 1.24s 1.25s p=0.018 n=6
Check Time 9.75s (± 0.61%) 9.74s (± 0.34%) ~ 9.70s 9.78s p=0.871 n=6
Emit Time 8.36s (± 0.62%) 8.36s (± 0.99%) ~ 8.29s 8.51s p=0.936 n=6
Total Time 22.93s (± 0.19%) 22.97s (± 0.49%) ~ 22.85s 23.14s p=0.468 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 187,961k (± 0.01%) 187,923k (± 0.01%) -38k (- 0.02%) 187,910k 187,935k p=0.013 n=6
Parse Time 1.60s (± 0.61%) 1.59s (± 0.34%) ~ 1.59s 1.60s p=0.201 n=6
Bind Time 0.84s (± 0.48%) 0.84s (± 0.61%) ~ 0.84s 0.85s p=0.595 n=6
Check Time 10.21s (± 0.44%) 10.22s (± 0.39%) ~ 10.19s 10.28s p=0.517 n=6
Emit Time 3.12s (± 0.89%) 3.13s (± 0.85%) ~ 3.10s 3.17s p=0.806 n=6
Total Time 15.78s (± 0.28%) 15.79s (± 0.24%) ~ 15.74s 15.84s p=0.630 n=6
Monaco - node (v14.15.1, x64)
Memory used 341,706k (± 0.00%) 341,657k (± 0.01%) -49k (- 0.01%) 341,634k 341,682k p=0.005 n=6
Parse Time 2.83s (± 0.50%) 2.83s (± 0.69%) ~ 2.81s 2.86s p=0.625 n=6
Bind Time 1.09s (± 0.76%) 1.10s (± 0.68%) ~ 1.09s 1.11s p=0.172 n=6
Check Time 8.14s (± 0.62%) 8.07s (± 0.49%) ~ 8.03s 8.14s p=0.075 n=6
Emit Time 4.68s (± 0.59%) 4.69s (± 0.46%) ~ 4.66s 4.72s p=0.413 n=6
Total Time 16.74s (± 0.39%) 16.69s (± 0.40%) ~ 16.60s 16.77s p=0.296 n=6
TFS - node (v14.15.1, x64)
Memory used 295,229k (± 0.01%) 295,225k (± 0.00%) ~ 295,214k 295,236k p=0.575 n=6
Parse Time 2.39s (± 0.94%) 2.39s (± 1.04%) ~ 2.37s 2.43s p=0.737 n=6
Bind Time 1.07s (± 0.51%) 1.06s (± 0.38%) ~ 1.06s 1.07s p=0.282 n=6
Check Time 7.50s (± 0.41%) 7.49s (± 0.59%) ~ 7.43s 7.54s p=0.574 n=6
Emit Time 4.27s (± 1.17%) 4.26s (± 0.92%) ~ 4.22s 4.33s p=0.871 n=6
Total Time 15.23s (± 0.52%) 15.21s (± 0.38%) ~ 15.13s 15.31s p=0.572 n=6
material-ui - node (v14.15.1, x64)
Memory used 473,290k (± 0.00%) 473,295k (± 0.00%) ~ 473,271k 473,309k p=0.688 n=6
Parse Time 3.33s (± 0.23%) 3.35s (± 0.55%) +0.02s (+ 0.60%) 3.33s 3.38s p=0.036 n=6
Bind Time 1.00s (± 0.63%) 1.01s (± 0.51%) ~ 1.00s 1.01s p=0.091 n=6
Check Time 18.97s (± 0.26%) 19.02s (± 0.52%) ~ 18.92s 19.18s p=0.470 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.30s (± 0.19%) 23.38s (± 0.42%) ~ 23.26s 23.51s p=0.199 n=6
xstate - node (v14.15.1, x64)
Memory used 539,303k (± 0.00%) 539,290k (± 0.00%) ~ 539,260k 539,324k p=0.230 n=6
Parse Time 4.25s (± 0.55%) 4.23s (± 0.41%) ~ 4.21s 4.26s p=0.294 n=6
Bind Time 1.66s (± 0.45%) 1.67s (± 0.59%) +0.01s (+ 0.80%) 1.66s 1.69s p=0.027 n=6
Check Time 3.17s (± 0.37%) 3.16s (± 0.59%) ~ 3.13s 3.18s p=0.563 n=6
Emit Time 0.09s (± 4.45%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=0.405 n=6
Total Time 9.16s (± 0.18%) 9.16s (± 0.22%) ~ 9.13s 9.19s p=0.869 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53229 6
Baseline main 6

TSServer

Comparison Report - main..53229
Metric main 53229 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,389ms (± 0.20%) 2,388ms (± 0.40%) ~ 2,375ms 2,401ms p=0.688 n=6
Req 2 - geterr 5,371ms (± 0.64%) 5,357ms (± 0.97%) ~ 5,287ms 5,418ms p=0.810 n=6
Req 3 - references 337ms (± 0.35%) 336ms (± 0.61%) ~ 333ms 338ms p=0.222 n=6
Req 4 - navto 280ms (± 0.37%) 281ms (± 0.61%) ~ 278ms 283ms p=0.459 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 79ms (± 6.30%) 82ms (± 2.73%) ~ 78ms 84ms p=0.324 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,522ms (± 1.58%) 2,508ms (± 1.23%) ~ 2,473ms 2,546ms p=0.575 n=6
Req 2 - geterr 4,001ms (± 0.75%) 4,005ms (± 0.64%) ~ 3,984ms 4,051ms p=0.872 n=6
Req 3 - references 348ms (± 1.00%) 350ms (± 1.33%) ~ 345ms 355ms p=0.519 n=6
Req 4 - navto 292ms (± 0.28%) 291ms (± 1.04%) ~ 287ms 294ms p=0.870 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 74ms (± 6.60%) 78ms (± 4.61%) ~ 74ms 84ms p=0.197 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,048ms (± 0.50%) 3,043ms (± 0.22%) ~ 3,033ms 3,052ms p=0.375 n=6
Req 2 - geterr 1,602ms (± 0.75%) 1,601ms (± 1.41%) ~ 1,563ms 1,632ms p=0.747 n=6
Req 3 - references 109ms (± 1.71%) 110ms (± 2.36%) ~ 107ms 113ms p=0.681 n=6
Req 4 - navto 358ms (± 0.49%) 362ms (± 1.67%) ~ 357ms 373ms p=0.220 n=6
Req 5 - completionInfo count 3,177 (± 0.00%) 3,177 (± 0.00%) ~ 3,177 3,177 p=1.000 n=6
Req 5 - completionInfo 422ms (± 1.17%) 422ms (± 2.43%) ~ 410ms 441ms p=0.936 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,504ms (± 0.67%) 2,513ms (± 0.83%) ~ 2,487ms 2,539ms p=0.378 n=6
Req 2 - geterr 5,739ms (± 0.25%) 5,758ms (± 0.30%) ~ 5,733ms 5,779ms p=0.078 n=6
Req 3 - references 346ms (± 0.93%) 346ms (± 0.84%) ~ 343ms 350ms p=0.936 n=6
Req 4 - navto 278ms (± 0.77%) 280ms (± 1.19%) ~ 277ms 286ms p=0.327 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 74ms (± 1.02%) 73ms (± 1.22%) ~ 72ms 74ms p=0.149 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,680ms (± 0.33%) 2,678ms (± 1.15%) ~ 2,641ms 2,730ms p=0.686 n=6
Req 2 - geterr 4,370ms (± 0.61%) 4,359ms (± 0.26%) ~ 4,345ms 4,378ms p=0.377 n=6
Req 3 - references 360ms (± 1.03%) 360ms (± 1.18%) ~ 355ms 366ms p=1.000 n=6
Req 4 - navto 291ms (± 0.35%) 290ms (± 0.42%) ~ 288ms 291ms p=0.114 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 78ms (± 6.64%) 78ms (± 4.13%) ~ 73ms 81ms p=0.870 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,198ms (± 0.42%) 3,197ms (± 0.18%) ~ 3,189ms 3,205ms p=0.810 n=6
Req 2 - geterr 1,743ms (± 1.17%) 1,742ms (± 0.80%) ~ 1,727ms 1,758ms p=0.873 n=6
Req 3 - references 119ms (± 0.68%) 119ms (± 0.68%) ~ 118ms 120ms p=1.000 n=6
Req 4 - navto 344ms (± 0.30%) 343ms (± 0.44%) ~ 341ms 345ms p=0.864 n=6
Req 5 - completionInfo count 3,177 (± 0.00%) 3,177 (± 0.00%) ~ 3,177 3,177 p=1.000 n=6
Req 5 - completionInfo 429ms (± 0.49%) 440ms (± 4.70%) ~ 426ms 481ms p=0.227 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,594ms (± 0.68%) 2,598ms (± 0.71%) ~ 2,576ms 2,624ms p=0.810 n=6
Req 2 - geterr 6,112ms (± 0.98%) 6,148ms (± 0.51%) ~ 6,117ms 6,187ms p=0.230 n=6
Req 3 - references 366ms (± 0.45%) 366ms (± 1.07%) ~ 358ms 368ms p=0.803 n=6
Req 4 - navto 280ms (± 1.38%) 281ms (± 0.82%) ~ 278ms 284ms p=0.809 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 93ms (±10.86%) 95ms (± 8.56%) ~ 81ms 101ms p=1.000 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,809ms (± 0.70%) 2,810ms (± 0.74%) ~ 2,784ms 2,838ms p=0.936 n=6
Req 2 - geterr 4,573ms (± 2.85%) 4,623ms (± 2.67%) ~ 4,458ms 4,705ms p=0.575 n=6
Req 3 - references 399ms (± 7.09%) 391ms (± 7.64%) ~ 369ms 430ms p=0.747 n=6
Req 4 - navto 288ms (± 0.57%) 289ms (± 0.80%) ~ 285ms 292ms p=0.290 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 90ms (±10.88%) 86ms (± 8.43%) ~ 81ms 95ms p=0.324 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,506ms (± 0.34%) 3,493ms (± 0.48%) ~ 3,464ms 3,513ms p=0.199 n=6
Req 2 - geterr 1,852ms (± 0.54%) 1,844ms (± 0.62%) ~ 1,834ms 1,863ms p=0.261 n=6
Req 3 - references 125ms (± 0.94%) 125ms (± 1.21%) ~ 123ms 127ms p=0.805 n=6
Req 4 - navto 367ms (± 0.44%) 368ms (± 0.29%) ~ 366ms 369ms p=0.510 n=6
Req 5 - completionInfo count 3,177 (± 0.00%) 3,177 (± 0.00%) ~ 3,177 3,177 p=1.000 n=6
Req 5 - completionInfo 442ms (± 1.19%) 450ms (± 1.99%) ~ 434ms 460ms p=0.108 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53229 6
Baseline main 6

Startup

Comparison Report - main..53229
Metric main 53229 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 141.87ms (± 0.18%) 141.07ms (± 0.14%) -0.80ms (- 0.56%) 140.55ms 143.38ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 227.70ms (± 0.30%) 225.70ms (± 0.16%) -2.00ms (- 0.88%) 224.83ms 231.83ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 229.22ms (± 0.25%) 227.89ms (± 0.19%) -1.33ms (- 0.58%) 226.91ms 235.29ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 210.10ms (± 0.25%) 208.75ms (± 0.18%) -1.35ms (- 0.64%) 207.78ms 213.13ms p=0.000 n=600
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v16.17.1, x64)
Scenarios
  • tsc-startup - node (v16.17.1, x64)
  • tsserver-startup - node (v16.17.1, x64)
  • tsserverlibrary-startup - node (v16.17.1, x64)
  • typescript-startup - node (v16.17.1, x64)
Benchmark Name Iterations
Current 53229 6
Baseline main 6

Developer Information:

Download Benchmark

@fatcerberus
Copy link

Seems like nearly no perf change (which I kind of figured anyway since the JIT will quickly inline noops out of existence). That said, ?. conveys what's actually happening much better.

@jakebailey
Copy link
Member Author

Yes, I'd want this to be merged regardless of perf.

@jakebailey jakebailey requested review from sandersn and sheetalkamat and removed request for sandersn March 13, 2023 20:53
@fatcerberus
Copy link

I'm almost surprised this didn't hurt perf, since it theoretically adds branching costs

@jakebailey
Copy link
Member Author

The runtime is surprisingly good at figuring out the downleveled ?.; my own perf testing had shown that even a ternary on null/undefined was faster than ||!

@sheetalkamat
Copy link
Member

This use to be big perf issue where if you did undefined check before calling function it would be slower compared to noop function. Looks like its not anymore ? @rbuckton might know more if thats true as i havent followed changes to this from runtime perspective to know if it impacts perf or not in recent runtimes.

@jakebailey
Copy link
Member Author

We did this for tracing back in #42323, so, if there were any perf gotchas, I think they are all solved at this point.

Copy link
Member

@sandersn sandersn left a comment

Choose a reason for hiding this comment

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

The change looks OK to me. As long as there's no performance regression, I don't have strong opinions about it.

@jakebailey jakebailey merged commit a727ca1 into microsoft:main Mar 15, 2023
@jakebailey jakebailey deleted the conditional-perf-logger branch March 15, 2023 22:58
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.

5 participants