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

Use 'export * from' for public API instead of 'export =' #57163

Closed
wants to merge 3 commits into from

Conversation

jakebailey
Copy link
Member

In #57133, I noticed that the emit for export = is actually worse for our bundle by a good bit; if we use export * from, things are less nested and smaller. Nothing changes for the public API as far as I'm aware.

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

@typescript-bot perf test

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 25, 2024

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

Update: The results are in!

@jakebailey
Copy link
Member Author

Ah, of course.

() => ts.version succeeded as expected.
() => ts.default.version failed as expected.
() => __importDefault(ts).version unexpectedly succeeded.
() => __importDefault(ts).default.version unexpectedly failed.
() => __importStar(ts).version succeeded as expected.
() => __importStar(ts).default.version unexpectedly failed.

In #51474 I actually did the reverse of this PR to fix #51473 and it's been long enough that I've forgotten.

I honestly don't understand this import helper stuff. I guess I could force __esModule back off again via another post-processing hack.

@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,643k (± 0.00%) 295,658k (± 0.01%) ~ 295,627k 295,701k p=0.199 n=6
Parse Time 2.67s (± 0.52%) 2.66s (± 0.39%) ~ 2.64s 2.67s p=0.183 n=6
Bind Time 0.83s (± 0.66%) 0.83s (± 1.25%) ~ 0.82s 0.85s p=0.090 n=6
Check Time 8.21s (± 0.25%) 8.19s (± 0.17%) ~ 8.17s 8.21s p=0.102 n=6
Emit Time 7.09s (± 0.14%) 7.08s (± 0.20%) ~ 7.06s 7.10s p=0.278 n=6
Total Time 18.79s (± 0.15%) 18.76s (± 0.10%) ~ 18.74s 18.79s p=0.104 n=6
Compiler-Unions - node (v18.15.0, x64)
Memory used 193,493k (± 1.57%) 191,539k (± 0.01%) ~ 191,512k 191,561k p=1.000 n=6
Parse Time 1.36s (± 1.01%) 1.36s (± 1.27%) ~ 1.34s 1.39s p=0.459 n=6
Bind Time 0.72s (± 0.00%) 0.72s (± 0.00%) ~ 0.72s 0.72s p=1.000 n=6
Check Time 9.36s (± 0.39%) 9.33s (± 0.17%) ~ 9.31s 9.35s p=0.221 n=6
Emit Time 2.61s (± 0.46%) 2.61s (± 0.46%) ~ 2.60s 2.63s p=0.406 n=6
Total Time 14.05s (± 0.30%) 14.02s (± 0.15%) ~ 13.99s 14.05s p=0.170 n=6
Monaco - node (v18.15.0, x64)
Memory used 347,445k (± 0.01%) 347,452k (± 0.00%) ~ 347,425k 347,475k p=0.810 n=6
Parse Time 2.47s (± 0.40%) 2.48s (± 0.59%) ~ 2.46s 2.50s p=0.117 n=6
Bind Time 0.93s (± 0.56%) 0.92s (± 0.56%) ~ 0.92s 0.93s p=0.311 n=6
Check Time 6.90s (± 0.41%) 6.94s (± 0.48%) ~ 6.90s 6.99s p=0.089 n=6
Emit Time 4.05s (± 0.34%) 4.06s (± 0.38%) ~ 4.03s 4.07s p=0.163 n=6
Total Time 14.34s (± 0.18%) 14.40s (± 0.30%) +0.06s (+ 0.43%) 14.35s 14.46s p=0.016 n=6
TFS - node (v18.15.0, x64)
Memory used 302,832k (± 0.01%) 302,831k (± 0.01%) ~ 302,806k 302,861k p=1.000 n=6
Parse Time 2.02s (± 0.75%) 2.01s (± 0.70%) ~ 1.99s 2.03s p=0.683 n=6
Bind Time 1.00s (± 0.98%) 1.01s (± 1.02%) ~ 1.00s 1.02s p=0.386 n=6
Check Time 6.32s (± 0.41%) 6.32s (± 0.54%) ~ 6.28s 6.38s p=1.000 n=6
Emit Time 3.59s (± 0.50%) 3.60s (± 0.23%) ~ 3.59s 3.61s p=0.405 n=6
Total Time 12.93s (± 0.25%) 12.94s (± 0.25%) ~ 12.89s 12.99s p=0.567 n=6
material-ui - node (v18.15.0, x64)
Memory used 511,292k (± 0.01%) 511,288k (± 0.01%) ~ 511,245k 511,321k p=0.936 n=6
Parse Time 2.64s (± 0.57%) 2.64s (± 0.77%) ~ 2.62s 2.66s p=0.802 n=6
Bind Time 1.00s (± 0.98%) 0.99s (± 0.76%) ~ 0.98s 1.00s p=0.109 n=6
Check Time 17.16s (± 0.28%) 17.21s (± 0.42%) ~ 17.12s 17.30s p=0.422 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.80s (± 0.32%) 20.84s (± 0.40%) ~ 20.73s 20.95s p=0.375 n=6
mui-docs - node (v18.15.0, x64)
Memory used 1,694,559k (± 0.00%) 1,694,543k (± 0.00%) ~ 1,694,505k 1,694,590k p=1.000 n=6
Parse Time 6.52s (± 0.43%) 6.54s (± 0.69%) ~ 6.49s 6.62s p=0.936 n=6
Bind Time 2.36s (± 0.50%) 2.36s (± 0.22%) ~ 2.35s 2.36s p=0.929 n=6
Check Time 55.20s (± 0.48%) 54.99s (± 0.35%) ~ 54.78s 55.30s p=0.230 n=6
Emit Time 0.16s (± 0.00%) 0.16s (± 0.00%) ~ 0.16s 0.16s p=1.000 n=6
Total Time 64.23s (± 0.44%) 64.04s (± 0.27%) ~ 63.82s 64.34s p=0.230 n=6
self-build-src - node (v18.15.0, x64)
Memory used 2,413,515k (± 0.04%) 2,413,530k (± 0.03%) ~ 2,412,631k 2,414,561k p=0.936 n=6
Parse Time 4.95s (± 1.00%) 4.96s (± 0.68%) ~ 4.90s 4.99s p=0.809 n=6
Bind Time 1.88s (± 1.10%) 1.87s (± 0.98%) ~ 1.85s 1.89s p=0.739 n=6
Check Time 33.42s (± 0.24%) 33.49s (± 0.13%) ~ 33.44s 33.56s p=0.199 n=6
Emit Time 2.69s (± 0.95%) 2.69s (± 2.31%) ~ 2.63s 2.78s p=0.810 n=6
Total Time 42.97s (± 0.21%) 43.04s (± 0.13%) ~ 42.96s 43.11s p=0.173 n=6
self-compiler - node (v18.15.0, x64)
Memory used 419,725k (± 0.02%) 419,723k (± 0.01%) ~ 419,694k 419,747k p=1.000 n=6
Parse Time 2.72s (± 3.21%) 2.75s (± 2.86%) ~ 2.67s 2.83s p=0.515 n=6
Bind Time 1.17s (± 6.50%) 1.14s (± 6.56%) ~ 1.07s 1.21s p=0.140 n=6
Check Time 15.10s (± 0.23%) 15.12s (± 0.10%) ~ 15.10s 15.14s p=0.332 n=6
Emit Time 1.15s (± 1.19%) 1.14s (± 0.72%) ~ 1.13s 1.15s p=0.181 n=6
Total Time 20.14s (± 0.21%) 20.15s (± 0.13%) ~ 20.11s 20.19s p=0.227 n=6
vscode - node (v18.15.0, x64)
Memory used 2,808,372k (± 0.00%) 2,808,376k (± 0.00%) ~ 2,808,322k 2,808,461k p=0.936 n=6
Parse Time 10.63s (± 0.59%) 10.63s (± 0.31%) ~ 10.58s 10.68s p=0.936 n=6
Bind Time 3.39s (± 0.40%) 3.39s (± 0.68%) ~ 3.36s 3.42s p=1.000 n=6
Check Time 59.69s (± 0.61%) 59.56s (± 0.32%) ~ 59.36s 59.83s p=0.575 n=6
Emit Time 16.13s (± 0.29%) 16.11s (± 0.53%) ~ 15.98s 16.24s p=0.628 n=6
Total Time 89.84s (± 0.41%) 89.68s (± 0.27%) ~ 89.44s 90.13s p=0.471 n=6
webpack - node (v18.15.0, x64)
Memory used 392,551k (± 0.01%) 392,611k (± 0.01%) +60k (+ 0.02%) 392,553k 392,676k p=0.045 n=6
Parse Time 3.06s (± 0.72%) 3.04s (± 0.68%) ~ 3.02s 3.07s p=0.324 n=6
Bind Time 1.39s (± 0.74%) 1.39s (± 0.64%) ~ 1.38s 1.40s p=0.673 n=6
Check Time 13.96s (± 0.27%) 13.98s (± 0.28%) ~ 13.91s 14.02s p=0.334 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 18.41s (± 0.23%) 18.41s (± 0.18%) ~ 18.35s 18.44s p=0.803 n=6
xstate - node (v18.15.0, x64)
Memory used 513,390k (± 0.01%) 513,412k (± 0.01%) ~ 513,361k 513,492k p=0.630 n=6
Parse Time 3.27s (± 0.32%) 3.27s (± 0.36%) ~ 3.25s 3.28s p=1.000 n=6
Bind Time 1.54s (± 0.33%) 1.54s (± 0.26%) ~ 1.54s 1.55s p=0.595 n=6
Check Time 2.85s (± 0.72%) 2.84s (± 0.39%) ~ 2.82s 2.85s p=0.290 n=6
Emit Time 0.08s (± 4.99%) 0.08s (± 4.99%) ~ 0.08s 0.09s p=1.000 n=6
Total Time 7.75s (± 0.25%) 7.73s (± 0.26%) ~ 7.72s 7.76s p=0.145 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,345ms (± 0.51%) 2,350ms (± 0.69%) ~ 2,321ms 2,366ms p=0.520 n=6
Req 2 - geterr 5,498ms (± 1.79%) 5,479ms (± 1.01%) ~ 5,432ms 5,583ms p=0.688 n=6
Req 3 - references 324ms (± 0.26%) 323ms (± 0.54%) ~ 320ms 324ms p=0.474 n=6
Req 4 - navto 276ms (± 1.11%) 277ms (± 1.01%) ~ 272ms 279ms p=0.869 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 85ms (± 8.48%) 83ms (± 7.02%) ~ 79ms 94ms p=0.673 n=6
CompilerTSServer - node (v18.15.0, x64)
Req 1 - updateOpen 2,490ms (± 1.45%) 2,490ms (± 0.98%) ~ 2,458ms 2,512ms p=0.810 n=6
Req 2 - geterr 4,223ms (± 1.91%) 4,198ms (± 2.19%) ~ 4,110ms 4,288ms p=0.575 n=6
Req 3 - references 335ms (± 1.78%) 339ms (± 1.81%) ~ 331ms 346ms p=0.416 n=6
Req 4 - navto 284ms (± 0.41%) 285ms (± 1.05%) ~ 283ms 291ms p=0.402 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 81ms (± 6.39%) 85ms (± 7.17%) ~ 77ms 90ms p=0.416 n=6
xstateTSServer - node (v18.15.0, x64)
Req 1 - updateOpen 2,606ms (± 0.60%) 2,597ms (± 0.47%) ~ 2,575ms 2,607ms p=0.109 n=6
Req 2 - geterr 1,723ms (± 2.41%) 1,695ms (± 2.91%) ~ 1,654ms 1,759ms p=0.520 n=6
Req 3 - references 120ms (± 8.52%) 120ms (± 8.85%) ~ 106ms 129ms p=0.738 n=6
Req 4 - navto 370ms (± 0.78%) 370ms (± 0.20%) ~ 369ms 371ms p=0.672 n=6
Req 5 - completionInfo count 2,078 (± 0.00%) 2,078 (± 0.00%) ~ 2,078 2,078 p=1.000 n=6
Req 5 - completionInfo 310ms (± 1.23%) 307ms (± 1.47%) ~ 301ms 313ms p=0.170 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.36ms (± 0.21%) 153.17ms (± 0.17%) -0.19ms (- 0.12%) 152.21ms 156.61ms p=0.000 n=600
tsserver-startup - node (v18.15.0, x64)
Execution time 228.18ms (± 0.16%) 227.98ms (± 0.15%) -0.21ms (- 0.09%) 226.60ms 234.22ms p=0.000 n=600
tsserverlibrary-startup - node (v18.15.0, x64)
Execution time 230.47ms (± 0.22%) 227.39ms (± 0.16%) -3.07ms (- 1.33%) 225.92ms 233.92ms p=0.000 n=600
typescript-startup - node (v18.15.0, x64)
Execution time 229.24ms (± 0.22%) 225.78ms (± 0.57%) -3.46ms (- 1.51%) 224.35ms 284.48ms 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

@jakebailey
Copy link
Member Author

I stuck this into #57133.

@jakebailey jakebailey closed this Jan 26, 2024
@jakebailey jakebailey deleted the export-star-api branch March 15, 2024 22:53
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.

None yet

2 participants