Cache discriminated contextual types by ahejlsberg · Pull Request #58372 · microsoft/TypeScript (original) (raw)
@ahejlsberg
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 - node (v18.15.0, x64) | ||||||
Errors | 30 | 30 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 62,154 | 62,154 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 50,273 | 50,273 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 193,518k (± 0.92%) | 194,037k (± 1.02%) | ~ | 192,208k | 196,008k | p=1.000 n=6 |
Parse Time | 1.31s (± 0.96%) | 1.31s (± 0.64%) | ~ | 1.29s | 1.31s | p=0.735 n=6 |
Bind Time | 0.72s | 0.72s | ~ | ~ | ~ | p=1.000 n=6 |
Check Time | 9.55s (± 0.39%) | 9.55s (± 0.28%) | ~ | 9.51s | 9.59s | p=1.000 n=6 |
Emit Time | 2.62s (± 0.62%) | 2.63s (± 0.54%) | ~ | 2.61s | 2.65s | p=0.194 n=6 |
Total Time | 14.19s (± 0.39%) | 14.20s (± 0.18%) | ~ | 14.16s | 14.23s | p=1.000 n=6 |
angular-1 - node (v18.15.0, x64) | ||||||
Errors | 5 | 5 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 945,322 | 945,923 | +601 (+ 0.06%) | ~ | ~ | p=0.001 n=6 |
Types | 408,088 | 408,398 | +310 (+ 0.08%) | ~ | ~ | p=0.001 n=6 |
Memory used | 1,222,099k (± 0.00%) | 1,222,740k (± 0.00%) | +641k (+ 0.05%) | 1,222,660k | 1,222,828k | p=0.005 n=6 |
Parse Time | 6.77s (± 0.76%) | 6.77s (± 0.46%) | ~ | 6.75s | 6.83s | p=0.807 n=6 |
Bind Time | 1.87s (± 0.44%) | 1.87s (± 0.52%) | ~ | 1.86s | 1.88s | p=0.862 n=6 |
Check Time | 31.45s (± 0.56%) | 31.26s (± 0.30%) | ~ | 31.13s | 31.38s | p=0.109 n=6 |
Emit Time | 14.63s (± 1.19%) | 14.74s (± 0.52%) | ~ | 14.64s | 14.82s | p=0.199 n=6 |
Total Time | 54.72s (± 0.49%) | 54.65s (± 0.30%) | ~ | 54.46s | 54.86s | p=0.809 n=6 |
mui-docs - node (v18.15.0, x64) | ||||||
Errors | 5 | 5 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 1,955,956 | 1,999,695 | +43,739 (+ 2.24%) | ~ | ~ | p=0.001 n=6 |
Types | 676,324 | 681,527 | +5,203 (+ 0.77%) | ~ | ~ | p=0.001 n=6 |
Memory used | 1,754,535k (± 0.00%) | 1,781,555k (± 0.00%) | +27,020k (+ 1.54%) | 1,781,507k | 1,781,587k | p=0.005 n=6 |
Parse Time | 6.71s (± 0.36%) | 6.71s (± 0.37%) | ~ | 6.68s | 6.74s | p=0.936 n=6 |
Bind Time | 2.31s (± 0.52%) | 2.30s (± 0.27%) | ~ | 2.29s | 2.31s | p=0.340 n=6 |
Check Time | 56.86s (± 0.38%) | 56.58s (± 0.31%) | -0.28s (- 0.50%) | 56.27s | 56.77s | p=0.037 n=6 |
Emit Time | 0.14s (± 2.95%) | 0.14s (± 2.88%) | ~ | 0.14s | 0.15s | p=0.218 n=6 |
Total Time | 66.01s (± 0.34%) | 65.72s (± 0.27%) | ~ | 65.44s | 65.92s | p=0.054 n=6 |
self-build-src - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 1,215,731 | 1,216,274 | +543 (+ 0.04%) | ~ | ~ | p=0.001 n=6 |
Types | 257,647 | 257,948 | +301 (+ 0.12%) | ~ | ~ | p=0.001 n=6 |
Memory used | 2,324,685k (± 0.03%) | 2,322,980k (± 0.02%) | -1,705k (- 0.07%) | 2,322,555k | 2,323,639k | p=0.005 n=6 |
Parse Time | 4.96s (± 0.16%) | 4.97s (± 0.77%) | ~ | 4.92s | 5.03s | p=0.258 n=6 |
Bind Time | 1.88s (± 0.62%) | 1.87s (± 1.37%) | ~ | 1.85s | 1.91s | p=0.328 n=6 |
Check Time | 34.04s (± 0.35%) | 33.49s (± 0.46%) | -0.54s (- 1.59%) | 33.24s | 33.64s | p=0.005 n=6 |
Emit Time | 2.59s (± 2.50%) | 2.62s (± 2.53%) | ~ | 2.51s | 2.69s | p=0.378 n=6 |
Total Time | 43.47s (± 0.39%) | 42.97s (± 0.42%) | -0.50s (- 1.15%) | 42.71s | 43.18s | p=0.005 n=6 |
self-build-src-public-api - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 1,215,731 | 1,216,274 | +543 (+ 0.04%) | ~ | ~ | p=0.001 n=6 |
Types | 257,647 | 257,948 | +301 (+ 0.12%) | ~ | ~ | p=0.001 n=6 |
Memory used | 2,398,813k (± 0.02%) | 2,398,153k (± 0.02%) | ~ | 2,397,364k | 2,398,623k | p=0.066 n=6 |
Parse Time | 6.21s (± 1.04%) | 6.24s (± 1.17%) | ~ | 6.14s | 6.33s | p=0.688 n=6 |
Bind Time | 2.03s (± 1.60%) | 2.02s (± 0.68%) | ~ | 2.01s | 2.05s | p=0.332 n=6 |
Check Time | 40.63s (± 0.32%) | 39.85s (± 0.28%) | -0.78s (- 1.93%) | 39.75s | 40.05s | p=0.005 n=6 |
Emit Time | 3.13s (± 2.12%) | 3.11s (± 1.68%) | ~ | 3.02s | 3.17s | p=0.575 n=6 |
Total Time | 52.02s (± 0.14%) | 51.24s (± 0.24%) | -0.78s (- 1.51%) | 51.08s | 51.43s | p=0.005 n=6 |
self-compiler - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 256,206 | 256,432 | +226 (+ 0.09%) | ~ | ~ | p=0.001 n=6 |
Types | 103,653 | 103,607 | -46 (- 0.04%) | ~ | ~ | p=0.001 n=6 |
Memory used | 424,264k (± 0.00%) | 424,324k (± 0.01%) | +61k (+ 0.01%) | 424,278k | 424,372k | p=0.008 n=6 |
Parse Time | 3.32s (± 1.62%) | 3.34s (± 0.99%) | ~ | 3.29s | 3.38s | p=0.629 n=6 |
Bind Time | 1.30s (± 0.58%) | 1.30s (± 0.80%) | ~ | 1.28s | 1.31s | p=0.437 n=6 |
Check Time | 18.27s (± 0.35%) | 17.73s (± 0.20%) | -0.53s (- 2.92%) | 17.70s | 17.80s | p=0.005 n=6 |
Emit Time | 1.35s (± 1.09%) | 1.37s (± 1.22%) | ~ | 1.35s | 1.39s | p=0.087 n=6 |
Total Time | 24.24s (± 0.38%) | 23.74s (± 0.26%) | -0.50s (- 2.06%) | 23.67s | 23.84s | p=0.005 n=6 |
ts-pre-modules - node (v18.15.0, x64) | ||||||
Errors | 35 | 35 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 224,824 | 225,034 | +210 (+ 0.09%) | ~ | ~ | p=0.001 n=6 |
Types | 93,390 | 93,347 | -43 (- 0.05%) | ~ | ~ | p=0.001 n=6 |
Memory used | 369,288k (± 0.01%) | 369,416k (± 0.02%) | +128k (+ 0.03%) | 369,344k | 369,598k | p=0.005 n=6 |
Parse Time | 3.49s (± 0.97%) | 3.51s (± 0.42%) | ~ | 3.49s | 3.53s | p=0.167 n=6 |
Bind Time | 1.92s (± 0.64%) | 1.94s (± 1.64%) | ~ | 1.91s | 1.98s | p=0.675 n=6 |
Check Time | 19.43s (± 0.33%) | 19.33s (± 0.29%) | -0.10s (- 0.51%) | 19.23s | 19.38s | p=0.013 n=6 |
Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
Total Time | 24.84s (± 0.27%) | 24.78s (± 0.33%) | ~ | 24.64s | 24.85s | p=0.230 n=6 |
vscode - node (v18.15.0, x64) | ||||||
Errors | 4 | 4 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 2,799,544 | 2,801,275 | +1,731 (+ 0.06%) | ~ | ~ | p=0.001 n=6 |
Types | 950,964 | 950,758 | -206 (- 0.02%) | ~ | ~ | p=0.001 n=6 |
Memory used | 2,927,051k (± 0.01%) | 2,927,911k (± 0.01%) | +860k (+ 0.03%) | 2,927,421k | 2,928,160k | p=0.005 n=6 |
Parse Time | 13.38s (± 0.53%) | 13.31s (± 0.26%) | ~ | 13.28s | 13.37s | p=0.076 n=6 |
Bind Time | 4.29s (± 0.27%) | 4.16s (± 2.77%) | ~ | 4.08s | 4.32s | p=0.167 n=6 |
Check Time | 73.00s (± 0.31%) | 72.58s (± 0.37%) | -0.42s (- 0.57%) | 72.30s | 73.03s | p=0.031 n=6 |
Emit Time | 21.05s (± 7.68%) | 21.11s (± 8.23%) | ~ | 19.55s | 23.35s | p=0.575 n=6 |
Total Time | 111.72s (± 1.46%) | 111.16s (± 1.40%) | ~ | 109.47s | 113.18s | p=0.471 n=6 |
webpack - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 265,858 | 265,858 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 108,442 | 108,442 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 410,483k (± 0.02%) | 410,427k (± 0.01%) | ~ | 410,349k | 410,496k | p=0.128 n=6 |
Parse Time | 4.77s (± 1.18%) | 4.74s (± 0.71%) | ~ | 4.71s | 4.80s | p=0.333 n=6 |
Bind Time | 2.08s (± 0.95%) | 2.06s (± 0.90%) | ~ | 2.04s | 2.09s | p=0.280 n=6 |
Check Time | 21.18s (± 0.22%) | 20.98s (± 0.17%) | -0.20s (- 0.95%) | 20.92s | 21.02s | p=0.005 n=6 |
Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
Total Time | 28.03s (± 0.32%) | 27.79s (± 0.24%) | -0.24s (- 0.87%) | 27.69s | 27.89s | p=0.005 n=6 |
xstate-main - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 524,146 | 553,173 | 🔻+29,027 (+ 5.54%) | ~ | ~ | p=0.001 n=6 |
Types | 178,732 | 188,311 | 🔻+9,579 (+ 5.36%) | ~ | ~ | p=0.001 n=6 |
Memory used | 461,380k (± 0.02%) | 476,795k (± 0.03%) | +15,416k (+ 3.34%) | 476,628k | 476,998k | p=0.005 n=6 |
Parse Time | 3.89s (± 0.32%) | 3.89s (± 0.70%) | ~ | 3.85s | 3.93s | p=1.000 n=6 |
Bind Time | 1.46s (± 1.28%) | 1.47s (± 1.34%) | ~ | 1.43s | 1.48s | p=0.870 n=6 |
Check Time | 22.56s (± 0.79%) | 22.78s (± 0.40%) | +0.23s (+ 1.00%) | 22.68s | 22.92s | p=0.031 n=6 |
Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
Total Time | 27.91s (± 0.62%) | 28.14s (± 0.42%) | +0.23s (+ 0.82%) | 27.99s | 28.28s | p=0.045 n=6 |
System info unknown
Hosts
- node (v18.15.0, x64)
Scenarios
- Compiler-Unions - node (v18.15.0, x64)
- angular-1 - 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)
- ts-pre-modules - node (v18.15.0, x64)
- vscode - node (v18.15.0, x64)
- webpack - node (v18.15.0, x64)
- xstate-main - node (v18.15.0, x64)
Benchmark | Name | Iterations |
---|---|---|
Current | pr | 6 |
Baseline | baseline | 6 |
Developer Information: