Skip to content

Avoid temporary composite mapper allocations - #4798

Draft
jakebailey wants to merge 1 commit into
mainfrom
jabaile/avoid-temporary-composite-mapper-allocations
Draft

Avoid temporary composite mapper allocations#4798
jakebailey wants to merge 1 commit into
mainfrom
jabaile/avoid-temporary-composite-mapper-allocations

Conversation

@jakebailey

Copy link
Copy Markdown
Member

I thew copilot at #4579's case and while it didn't fix anything, it did find a perf optimization:

  • Check time: 4.923s → 4.791s (2.7%)
  • Peak RSS: 738MB → 697MB (5.5%)
  • Allocations: 434MB → 342MB (21%)

@jakebailey

Copy link
Copy Markdown
Member Author

@typescript-bot perf test this faster

@typescript-automation

typescript-automation Bot commented Jul 30, 2026

Copy link
Copy Markdown

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

Command Status Results
perf test this faster ✅ Started 👀 Results

@typescript-automation

Copy link
Copy Markdown

@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
Compiler-Unions - native
Errors 41 41 ~ ~ ~ p=1.000 n=6
Symbols 119,733 119,733 ~ ~ ~ p=1.000 n=6
Types 99,032 99,032 ~ ~ ~ p=1.000 n=6
Memory Used 152,987k (± 0.68%) 151,535k (± 0.72%) ~ 150,296k 152,997k p=0.065 n=6
Memory Allocs 2,275,772 (± 0.00%) 2,275,803 (± 0.01%) ~ 2,275,436 2,275,993 p=0.240 n=6
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=6
Parse Time 0.050s (±10.77%) 0.051s (± 3.28%) ~ 0.048s 0.053s p=0.972 n=6
Bind Time 0.018s (± 7.31%) 0.018s (±19.18%) ~ 0.012s 0.022s p=0.634 n=6
Check Time 0.757s (± 0.87%) 0.762s (± 0.81%) ~ 0.754s 0.772s p=0.147 n=6
Emit Time 0.300s (± 3.02%) 0.311s (± 3.08%) ~ 0.304s 0.330s p=0.165 n=6
Total Time 1.133s (± 1.17%) 1.149s (± 1.14%) ~ 1.130s 1.169s p=0.071 n=6
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=6
Symbols 873,032 (± 0.19%) 871,536 (± 0.12%) ~ 870,289 872,901 p=0.093 n=6
Types 263,962 (± 0.00%) 263,961 (± 0.00%) ~ 263,960 263,962 p=0.177 n=6
Memory Used 808,871k (± 0.11%) 808,109k (± 0.13%) ~ 806,746k 809,568k p=0.240 n=6
Memory Allocs 13,150,552 (± 0.16%) 13,129,026 (± 0.01%) -21,526 (- 0.16%) 13,127,187 13,130,269 p=0.002 n=6
Config Time 0.017s (± 4.71%) 0.017s (± 2.98%) ~ 0.017s 0.018s p=1.000 n=6
Parse Time 0.240s (± 4.71%) 0.239s (± 4.26%) ~ 0.224s 0.253s p=0.968 n=6
Bind Time 0.047s (±37.98%) 0.044s (±10.73%) ~ 0.040s 0.053s p=0.199 n=6
Check Time 0s 0s ~ ~ ~ p=1.000 n=6
Emit Time 1.892s (± 2.46%) 1.885s (± 0.59%) ~ 1.874s 1.901s p=0.589 n=6
Total Time 2.211s (± 1.84%) 2.196s (± 0.84%) ~ 2.171s 2.221s p=0.699 n=6
mui-docs - native
Errors 11,281 (± 0.01%) 11,280 (± 0.03%) ~ 11,274 11,282 p=0.697 n=6
Symbols 4,386,587 4,386,587 ~ ~ ~ p=1.000 n=6
Types 1,537,077 1,537,077 ~ ~ ~ p=1.000 n=6
Memory Used 4,961,353k (± 0.03%) 4,963,576k (± 0.04%) +2,223k (+ 0.04%) 4,962,032k 4,967,716k p=0.009 n=6
Memory Allocs 46,006,787 (± 0.11%) 45,349,229 (± 0.14%) -657,558 (- 1.43%) 45,284,521 45,453,167 p=0.002 n=6
Config Time 0.018s (± 9.38%) 0.016s ~ ~ ~ p=0.061 n=6
Parse Time 0.498s (± 3.88%) 0.493s (± 2.46%) ~ 0.476s 0.507s p=1.000 n=6
Bind Time 0.002s 0.002s ~ ~ ~ p=1.000 n=6
Check Time 15.986s (± 0.20%) 16.007s (± 0.59%) ~ 15.905s 16.137s p=1.000 n=6
Emit Time 0.454s (± 3.50%) 0.470s (± 4.40%) +0.016s (+ 3.60%) 0.448s 0.490s p=0.032 n=6
Total Time 17.694s (± 0.32%) 17.694s (± 0.62%) ~ 17.569s 17.817s p=1.000 n=6
self-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,394,491 1,394,491 ~ ~ ~ p=1.000 n=6
Types 442,212 442,212 ~ ~ ~ p=1.000 n=6
Memory Used 1,598,657k (± 0.48%) 1,594,316k (± 0.28%) ~ 1,588,042k 1,600,395k p=0.093 n=6
Memory Allocs 97,131,731 (± 0.07%) 97,043,850 (± 0.04%) ~ 97,006,504 97,111,266 p=0.065 n=6
Config Time 0.020s (±29.79%) 0.018s (±35.34%) ~ 0.010s 0.027s p=0.485 n=6
Parse Time 0.251s (± 2.67%) 0.257s (± 5.40%) ~ 0.239s 0.276s p=0.411 n=6
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=6
Check Time 2.182s (± 0.94%) 2.182s (± 1.08%) ~ 2.154s 2.217s p=0.937 n=6
Emit Time 0.299s (± 3.66%) 0.308s (± 6.35%) ~ 0.293s 0.337s p=0.667 n=6
Total Time 28.788s (± 0.94%) 29.027s (± 0.85%) ~ 28.665s 29.390s p=0.132 n=6
self-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 337,834 337,834 ~ ~ ~ p=1.000 n=6
Types 199,561 199,561 ~ ~ ~ p=1.000 n=6
Memory Used 318,840k (± 0.02%) 318,767k (± 0.04%) ~ 318,673k 319,010k p=0.180 n=6
Memory Allocs 4,677,718 (± 0.01%) 4,675,434 (± 0.01%) -2,284 (- 0.05%) 4,674,940 4,676,460 p=0.002 n=6
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=6
Parse Time 0.115s (± 5.19%) 0.114s (± 3.18%) ~ 0.108s 0.117s p=0.725 n=6
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=6
Check Time 1.275s (± 1.43%) 1.294s (± 0.94%) ~ 1.277s 1.309s p=0.082 n=6
Emit Time 0.114s (±10.97%) 0.120s (± 6.45%) ~ 0.109s 0.128s p=0.407 n=6
Total Time 1.560s (± 1.38%) 1.579s (± 0.99%) ~ 1.558s 1.599s p=0.223 n=6
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=6
Symbols 302,246 302,246 ~ ~ ~ p=1.000 n=6
Types 181,595 181,595 ~ ~ ~ p=1.000 n=6
Memory Used 274,829k (± 0.04%) 274,840k (± 0.03%) ~ 274,713k 274,938k p=0.589 n=6
Memory Allocs 1,675,617 (± 0.02%) 1,673,907 (± 0.03%) -1,710 (- 0.10%) 1,673,288 1,674,346 p=0.002 n=6
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=6
Parse Time 0.102s (± 6.85%) 0.100s (± 4.24%) ~ 0.096s 0.105s p=0.853 n=6
Bind Time 0.039s (±14.49%) 0.043s (±12.85%) ~ 0.034s 0.050s p=0.294 n=6
Check Time 1.073s (± 0.99%) 1.070s (± 1.04%) ~ 1.061s 1.086s p=0.457 n=6
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=6
Total Time 1.228s (± 1.03%) 1.227s (± 0.94%) ~ 1.211s 1.245s p=1.000 n=6
vscode - native
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 7,520,316 7,520,316 ~ ~ ~ p=1.000 n=6
Types 2,621,761 2,621,761 ~ ~ ~ p=1.000 n=6
Memory Used 5,025,197k (± 0.03%) 5,025,243k (± 0.02%) ~ 5,023,953k 5,026,389k p=0.937 n=6
Memory Allocs 38,384,658 (± 0.03%) 38,367,679 (± 0.09%) ~ 38,328,642 38,401,073 p=0.699 n=6
Config Time 0.073s (±11.28%) 0.078s (± 9.85%) ~ 0.067s 0.089s p=0.190 n=6
Parse Time 0.940s (± 2.94%) 0.902s (± 2.56%) 🟩-0.037s (- 3.99%) 0.874s 0.934s p=0.041 n=6
Bind Time 0.165s (± 1.85%) 0.161s (± 4.12%) ~ 0.149s 0.169s p=0.284 n=6
Check Time 8.653s (± 0.29%) 8.678s (± 1.10%) ~ 8.598s 8.860s p=1.000 n=6
Emit Time 2.683s (± 2.70%) 2.551s (± 8.12%) 🟩-0.132s (- 4.92%) 2.172s 2.698s p=0.041 n=6
Total Time 12.531s (± 0.86%) 12.389s (± 1.23%) -0.142s (- 1.14%) 12.184s 12.531s p=0.041 n=6
webpack - native
Errors 2 2 ~ ~ ~ p=1.000 n=6
Symbols 195,834 195,834 ~ ~ ~ p=1.000 n=6
Types 340 340 ~ ~ ~ p=1.000 n=6
Memory Used 229,898k (± 0.22%) 229,965k (± 0.20%) ~ 229,258k 230,622k p=0.970 n=6
Memory Allocs 978,850 (± 0.50%) 976,030 (± 0.24%) ~ 972,892 978,922 p=0.240 n=6
Config Time 0.012s (±16.65%) 0.011s (±16.40%) ~ 0.008s 0.012s p=0.325 n=6
Parse Time 0.148s (± 1.78%) 0.147s (± 4.75%) ~ 0.137s 0.157s p=0.974 n=6
Bind Time 0s 0s ~ ~ ~ p=1.000 n=6
Check Time 0s 0s ~ ~ ~ p=1.000 n=6
Emit Time 0.048s (±14.14%) 0.054s (± 7.41%) ~ 0.047s 0.058s p=0.169 n=6
Total Time 0.209s (± 3.70%) 0.212s (± 2.27%) ~ 0.204s 0.217s p=0.558 n=6
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,066,055 1,066,055 ~ ~ ~ p=1.000 n=6
Types 392,847 392,847 ~ ~ ~ p=1.000 n=6
Memory Used 634,811k (± 0.03%) 634,709k (± 0.02%) ~ 634,565k 634,855k p=0.310 n=6
Memory Allocs 5,006,845 (± 0.21%) 4,934,689 (± 0.10%) -72,156 (- 1.44%) 4,927,952 4,942,549 p=0.002 n=6
Config Time 0.005s (± 8.44%) 0.005s (± 8.44%) ~ 0.004s 0.005s p=1.000 n=6
Parse Time 0.126s (± 4.47%) 0.130s (± 2.98%) ~ 0.126s 0.136s p=0.190 n=6
Bind Time 0.036s (±24.07%) 0.033s (±23.84%) ~ 0.026s 0.047s p=0.420 n=6
Check Time 1.242s (± 0.93%) 1.245s (± 0.72%) ~ 1.232s 1.259s p=0.686 n=6
Emit Time 0.001s 0.001s ~ ~ ~ p=1.000 n=6
Total Time 1.414s (± 0.34%) 1.417s (± 0.47%) ~ 1.411s 1.427s p=0.589 n=6
System info unknown
Hosts
  • native
Scenarios
  • Compiler-Unions - native
  • angular-1 - native
  • mui-docs - native
  • self-build-src - native
  • self-compiler - native
  • ts-pre-modules - native
  • vscode - native
  • webpack - native
  • xstate-main - native
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

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.

1 participant