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

Export executeCommandLine from public API (internal for now) #58057

Merged
merged 5 commits into from
Apr 4, 2024

Conversation

jakebailey
Copy link
Member

@jakebailey jakebailey commented Apr 3, 2024

This extracts just the executeCommandLine and public API changes from #57703. My intent is that I can make a mini tsc using the public API such that we can long-term perf test changes like #58045 which only affect the public API, without writing all of the code to directly use Program/build mode.

I've opted to export the executeCommandLine function in public with a simplified signature, but I could also just leave this all internal.

Exporting this increases the package size by 40KB, not that bad.

Overall package size

Before After Diff Diff (percent)
Packed 3.77 MiB 3.77 MiB +8.05 KiB +0.21%
Unpacked 20.38 MiB 20.42 MiB +40.52 KiB +0.19%

Files

Before After Diff Diff (percent)
lib/typescript.d.ts 561.75 KiB 561.97 KiB +228.00 B +0.04%
lib/typescript.js 8.18 MiB 8.22 MiB +40.30 KiB +0.48%

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Apr 3, 2024
@typescript-bot
Copy link
Collaborator

Looks like you're introducing a change to the public API surface area. If this includes breaking changes, please document them on our wiki's API Breaking Changes page.

Also, please make sure @DanielRosenwasser and @RyanCavanaugh are aware of the changes, just as a heads up.

@jakebailey
Copy link
Member Author

I've made it internal again, but, I will note that some people do actually want to use this API in public, though. I don't think it's a big deal to leave it internal for the time being in any case.

@jakebailey jakebailey marked this pull request as draft April 4, 2024 04:42
@jakebailey jakebailey marked this pull request as ready for review April 4, 2024 19:47
@jakebailey jakebailey changed the title Export executeCommandLine from public API Export executeCommandLine from public API (internal for now) Apr 4, 2024
@jakebailey
Copy link
Member Author

@typescript-bot perf test this faster

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 4, 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,729k (± 0.01%) 295,752k (± 0.01%) ~ 295,725k 295,785k p=0.261 n=6
Parse Time 2.65s (± 0.65%) 2.65s (± 0.46%) ~ 2.64s 2.67s p=1.000 n=6
Bind Time 0.83s (± 0.49%) 0.83s (± 1.00%) ~ 0.83s 0.85s p=0.527 n=6
Check Time 8.24s (± 0.40%) 8.27s (± 0.32%) ~ 8.23s 8.30s p=0.295 n=6
Emit Time 7.03s (± 0.35%) 7.05s (± 0.14%) ~ 7.04s 7.06s p=0.118 n=6
Total Time 18.75s (± 0.32%) 18.80s (± 0.10%) ~ 18.78s 18.82s p=0.195 n=6
Compiler-Unions - node (v18.15.0, x64)
Memory used 193,328k (± 0.93%) 192,304k (± 0.08%) ~ 192,128k 192,462k p=1.000 n=6
Parse Time 1.36s (± 1.00%) 1.35s (± 1.11%) ~ 1.33s 1.37s p=0.453 n=6
Bind Time 0.73s (± 0.56%) 0.73s (± 0.00%) ~ 0.73s 0.73s p=0.405 n=6
Check Time 9.51s (± 0.35%) 9.53s (± 0.82%) ~ 9.43s 9.64s p=1.000 n=6
Emit Time 2.60s (± 0.89%) 2.60s (± 0.40%) ~ 2.59s 2.62s p=0.869 n=6
Total Time 14.20s (± 0.39%) 14.21s (± 0.63%) ~ 14.12s 14.34s p=1.000 n=6
Monaco - node (v18.15.0, x64)
Memory used 347,516k (± 0.00%) 347,514k (± 0.01%) ~ 347,490k 347,552k p=0.575 n=6
Parse Time 2.49s (± 0.53%) 2.49s (± 0.49%) ~ 2.47s 2.50s p=0.863 n=6
Bind Time 0.93s (± 0.56%) 0.93s (± 0.56%) ~ 0.92s 0.93s p=1.000 n=6
Check Time 6.97s (± 0.26%) 6.99s (± 0.65%) ~ 6.93s 7.04s p=0.624 n=6
Emit Time 4.07s (± 0.46%) 4.05s (± 0.40%) ~ 4.03s 4.08s p=0.301 n=6
Total Time 14.45s (± 0.22%) 14.45s (± 0.39%) ~ 14.37s 14.51s p=0.872 n=6
TFS - node (v18.15.0, x64)
Memory used 302,838k (± 0.01%) 302,824k (± 0.01%) ~ 302,782k 302,879k p=0.378 n=6
Parse Time 2.98s (± 0.28%) 2.96s (± 0.78%) ~ 2.92s 2.98s p=0.438 n=6
Bind Time 1.48s (± 0.66%) 1.47s (± 0.37%) ~ 1.47s 1.48s p=0.662 n=6
Check Time 9.27s (± 0.71%) 9.29s (± 0.45%) ~ 9.24s 9.35s p=0.521 n=6
Emit Time 5.30s (± 0.25%) 5.30s (± 0.46%) ~ 5.28s 5.35s p=0.803 n=6
Total Time 19.02s (± 0.35%) 19.03s (± 0.27%) ~ 18.98s 19.11s p=0.809 n=6
material-ui - node (v18.15.0, x64)
Memory used 510,063k (± 0.00%) 510,085k (± 0.00%) ~ 510,052k 510,120k p=0.173 n=6
Parse Time 2.67s (± 0.21%) 2.67s (± 0.31%) ~ 2.66s 2.68s p=0.855 n=6
Bind Time 0.98s (± 0.77%) 0.99s (± 0.99%) ~ 0.97s 1.00s p=0.167 n=6
Check Time 17.31s (± 0.33%) 17.34s (± 0.48%) ~ 17.24s 17.48s p=0.744 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.23%) 20.99s (± 0.41%) ~ 20.90s 21.14s p=0.809 n=6
mui-docs - node (v18.15.0, x64)
Memory used 1,744,958k (± 0.00%) 1,744,966k (± 0.00%) ~ 1,744,903k 1,745,006k p=0.748 n=6
Parse Time 9.65s (± 0.28%) 9.66s (± 0.50%) ~ 9.57s 9.71s p=0.334 n=6
Bind Time 3.48s (± 0.66%) 3.47s (± 1.27%) ~ 3.41s 3.53s p=0.572 n=6
Check Time 82.20s (± 0.29%) 82.11s (± 0.21%) ~ 81.83s 82.29s p=0.470 n=6
Emit Time 0.19s (± 2.13%) 0.20s (± 2.62%) ~ 0.19s 0.20s p=0.112 n=6
Total Time 95.52s (± 0.25%) 95.44s (± 0.24%) ~ 95.11s 95.65s p=0.575 n=6
self-build-src - node (v18.15.0, x64)
Memory used 2,402,219k (± 0.04%) 2,296,545k (± 0.04%) 🟩-105,674k (- 4.40%) 2,295,514k 2,297,967k p=0.005 n=6
Parse Time 7.44s (± 0.98%) 7.41s (± 0.95%) ~ 7.32s 7.50s p=0.629 n=6
Bind Time 2.71s (± 3.80%) 2.78s (± 1.15%) ~ 2.74s 2.83s p=0.120 n=6
Check Time 49.31s (± 0.47%) 49.14s (± 0.56%) ~ 48.85s 49.44s p=0.575 n=6
Emit Time 3.93s (± 2.01%) 3.98s (± 1.56%) ~ 3.90s 4.08s p=0.378 n=6
Total Time 63.41s (± 0.24%) 63.28s (± 0.38%) ~ 62.99s 63.54s p=0.378 n=6
self-build-src-public-api - node (v18.15.0, x64)
Memory used 0k 2,259,234k (± 0.03%) ~ 2,258,604k 2,260,637k p=1.000 n=0+6
Parse Time 0.00s 7.57s (± 1.13%) ~ 7.44s 7.67s p=1.000 n=0+6
Bind Time 0.00s 2.60s (± 0.75%) ~ 2.57s 2.63s p=1.000 n=0+6
Check Time 0.00s 52.89s (± 0.24%) ~ 52.80s 53.14s p=1.000 n=0+6
Emit Time 0.00s 4.16s (± 3.09%) ~ 4.01s 4.32s p=1.000 n=0+6
Total Time 0.00s 67.23s (± 0.29%) ~ 67.01s 67.51s p=1.000 n=0+6
self-compiler - node (v18.15.0, x64)
Memory used 416,596k (± 0.01%) 419,453k (± 0.01%) +2,857k (+ 0.69%) 419,425k 419,481k p=0.005 n=6
Parse Time 3.34s (± 0.56%) 3.36s (± 0.49%) +0.03s (+ 0.80%) 3.34s 3.38s p=0.035 n=6
Bind Time 1.30s (± 1.05%) 1.31s (± 0.93%) ~ 1.29s 1.32s p=0.303 n=6
Check Time 18.26s (± 0.66%) 18.23s (± 0.28%) ~ 18.17s 18.31s p=1.000 n=6
Emit Time 1.39s (± 1.76%) 1.37s (± 1.19%) ~ 1.35s 1.39s p=0.220 n=6
Total Time 24.28s (± 0.48%) 24.27s (± 0.19%) ~ 24.21s 24.33s p=0.810 n=6
vscode - node (v18.15.0, x64)
Memory used 2,908,045k (± 0.00%) 2,908,100k (± 0.00%) ~ 2,908,040k 2,908,174k p=0.630 n=6
Parse Time 15.85s (± 0.33%) 15.88s (± 0.34%) ~ 15.82s 15.97s p=0.470 n=6
Bind Time 5.07s (± 0.38%) 5.06s (± 0.54%) ~ 5.01s 5.09s p=0.568 n=6
Check Time 87.45s (± 0.71%) 87.18s (± 0.24%) ~ 86.85s 87.47s p=0.810 n=6
Emit Time 24.39s (± 7.94%) 23.66s (± 0.70%) ~ 23.43s 23.88s p=0.873 n=6
Total Time 132.76s (± 1.38%) 131.77s (± 0.30%) ~ 131.19s 132.23s p=0.298 n=6
webpack - node (v18.15.0, x64)
Memory used 409,049k (± 0.03%) 409,000k (± 0.01%) ~ 408,927k 409,065k p=0.575 n=6
Parse Time 4.81s (± 0.58%) 4.78s (± 0.97%) ~ 4.73s 4.85s p=0.374 n=6
Bind Time 2.06s (± 0.71%) 2.07s (± 0.47%) ~ 2.05s 2.08s p=0.440 n=6
Check Time 20.92s (± 0.23%) 20.88s (± 0.23%) ~ 20.81s 20.93s p=0.169 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 27.79s (± 0.24%) 27.73s (± 0.33%) ~ 27.61s 27.86s p=0.261 n=6
xstate - node (v18.15.0, x64)
Memory used 513,601k (± 0.02%) 513,531k (± 0.01%) ~ 513,480k 513,663k p=0.229 n=6
Parse Time 4.90s (± 0.52%) 4.91s (± 0.74%) ~ 4.86s 4.95s p=0.748 n=6
Bind Time 2.31s (± 1.31%) 2.32s (± 0.82%) ~ 2.30s 2.34s p=0.251 n=6
Check Time 4.32s (± 0.99%) 4.32s (± 0.45%) ~ 4.30s 4.35s p=0.746 n=6
Emit Time 0.11s (± 0.00%) 0.11s (± 3.65%) ~ 0.11s 0.12s p=0.405 n=6
Total Time 11.64s (± 0.69%) 11.65s (± 0.31%) ~ 11.61s 11.70s p=0.421 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-build-src-public-api - 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

@jakebailey
Copy link
Member Author

Good, it's working.

image

@jakebailey jakebailey merged commit 5144b3e into microsoft:main Apr 4, 2024
25 checks passed
@jakebailey jakebailey deleted the export-execute-command-line branch April 4, 2024 22:52
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.

4 participants