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

Enable JS emit for noCheck and noCheck for transpileModule #58364

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

weswigham
Copy link
Member

@weswigham weswigham commented Apr 29, 2024

This PR enables noCheck for JS emit, and tests all js emit tests with noCheck, just as we do declaration emit tests with noCheck. It also enables noCheck for transpileModule by default.

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

@typescript-bot perf test this faster

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 29, 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

@weswigham
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,157 +3 (+ 0.00%) ~ ~ p=0.001 n=6
Types 50,273 50,284 +11 (+ 0.02%) ~ ~ p=0.001 n=6
Memory used 194,036k (± 1.01%) 206,867k (± 0.54%) 🔻+12,831k (+ 6.61%) 205,758k 207,973k p=0.005 n=6
Parse Time 1.30s (± 0.42%) 1.29s (± 1.24%) ~ 1.27s 1.31s p=0.055 n=6
Bind Time 0.72s 0.72s ~ ~ ~ p=1.000 n=6
Check Time 9.58s (± 0.31%) 10.16s (± 0.56%) 🔻+0.58s (+ 6.05%) 10.12s 10.25s p=0.005 n=6
Emit Time 2.62s (± 0.78%) 4.18s (± 0.72%) 🔻+1.56s (+59.52%) 4.14s 4.23s p=0.005 n=6
Total Time 14.23s (± 0.24%) 16.35s (± 0.40%) 🔻+2.12s (+14.87%) 16.28s 16.43s p=0.005 n=6
angular-1 - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 945,172 945,778 +606 (+ 0.06%) ~ ~ p=0.001 n=6
Types 408,068 408,353 +285 (+ 0.07%) ~ ~ p=0.001 n=6
Memory used 1,222,051k (± 0.01%) 1,249,000k (± 0.00%) +26,950k (+ 2.21%) 1,248,916k 1,249,055k p=0.005 n=6
Parse Time 8.05s (± 0.36%) 8.04s (± 0.42%) ~ 8.01s 8.10s p=0.629 n=6
Bind Time 2.21s (± 0.62%) 2.22s (± 0.57%) ~ 2.21s 2.24s p=0.357 n=6
Check Time 36.43s (± 0.33%) 39.06s (± 0.40%) 🔻+2.64s (+ 7.24%) 38.83s 39.25s p=0.005 n=6
Emit Time 17.34s (± 0.86%) 22.40s (± 0.53%) 🔻+5.06s (+29.18%) 22.28s 22.58s p=0.005 n=6
Total Time 64.03s (± 0.31%) 71.72s (± 0.23%) 🔻+7.69s (+12.01%) 71.47s 71.86s p=0.005 n=6
mui-docs - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 1,955,870 1,956,035 +165 (+ 0.01%) ~ ~ p=0.001 n=6
Types 676,290 676,309 +19 (+ 0.00%) ~ ~ p=0.001 n=6
Memory used 1,754,563k (± 0.00%) 1,758,450k (± 0.00%) +3,887k (+ 0.22%) 1,758,404k 1,758,494k p=0.005 n=6
Parse Time 6.71s (± 0.32%) 6.71s (± 0.42%) ~ 6.69s 6.75s p=0.934 n=6
Bind Time 2.31s (± 0.45%) 2.30s (± 1.27%) ~ 2.25s 2.33s p=1.000 n=6
Check Time 56.87s (± 0.50%) 57.59s (± 0.32%) +0.72s (+ 1.27%) 57.26s 57.82s p=0.005 n=6
Emit Time 0.13s (± 3.87%) 0.14s (± 4.51%) ~ 0.13s 0.15s p=0.091 n=6
Total Time 66.02s (± 0.46%) 66.75s (± 0.26%) +0.72s (+ 1.09%) 66.44s 66.98s p=0.005 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,215,708 1,216,393 +685 (+ 0.06%) ~ ~ p=0.001 n=6
Types 257,646 257,862 +216 (+ 0.08%) ~ ~ p=0.001 n=6
Memory used 2,323,836k (± 0.03%) 2,332,963k (± 0.02%) +9,127k (+ 0.39%) 2,332,530k 2,333,620k p=0.005 n=6
Parse Time 5.94s (± 0.73%) 5.93s (± 1.07%) ~ 5.86s 6.00s p=0.689 n=6
Bind Time 2.21s (± 1.01%) 2.21s (± 1.05%) ~ 2.18s 2.25s p=0.936 n=6
Check Time 39.91s (± 0.28%) 42.90s (± 0.50%) 🔻+2.99s (+ 7.50%) 42.63s 43.24s p=0.005 n=6
Emit Time 3.13s (± 4.95%) 3.13s (± 1.27%) ~ 3.07s 3.18s p=0.630 n=6
Total Time 51.23s (± 0.47%) 54.21s (± 0.45%) 🔻+2.98s (+ 5.82%) 54.01s 54.61s 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,708 1,216,393 +685 (+ 0.06%) ~ ~ p=0.001 n=6
Types 257,646 257,862 +216 (+ 0.08%) ~ ~ p=0.001 n=6
Memory used 2,398,433k (± 0.02%) 2,407,755k (± 0.02%) +9,322k (+ 0.39%) 2,406,735k 2,408,266k p=0.005 n=6
Parse Time 5.11s (± 0.64%) 5.10s (± 0.69%) ~ 5.07s 5.15s p=0.335 n=6
Bind Time 1.67s (± 0.80%) 1.68s (± 0.63%) ~ 1.66s 1.69s p=0.358 n=6
Check Time 34.45s (± 0.32%) 36.55s (± 0.42%) 🔻+2.10s (+ 6.11%) 36.26s 36.68s p=0.005 n=6
Emit Time 2.66s (± 0.97%) 2.68s (± 3.69%) ~ 2.54s 2.80s p=0.870 n=6
Total Time 43.92s (± 0.17%) 46.03s (± 0.42%) 🔻+2.11s (+ 4.81%) 45.64s 46.14s p=0.005 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 256,204 256,501 +297 (+ 0.12%) ~ ~ p=0.001 n=6
Types 103,653 103,740 +87 (+ 0.08%) ~ ~ p=0.001 n=6
Memory used 424,273k (± 0.01%) 428,151k (± 0.01%) +3,879k (+ 0.91%) 428,112k 428,210k p=0.005 n=6
Parse Time 2.76s (± 1.59%) 2.77s (± 0.40%) ~ 2.76s 2.78s p=0.869 n=6
Bind Time 1.10s (± 1.86%) 1.09s (± 0.37%) ~ 1.09s 1.10s p=1.000 n=6
Check Time 15.49s (± 0.33%) 16.45s (± 0.44%) 🔻+0.96s (+ 6.19%) 16.36s 16.54s p=0.005 n=6
Emit Time 1.15s (± 1.53%) 1.16s (± 2.07%) ~ 1.12s 1.19s p=0.193 n=6
Total Time 20.49s (± 0.29%) 21.47s (± 0.31%) 🔻+0.98s (+ 4.80%) 21.41s 21.57s p=0.005 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 224,824 224,980 +156 (+ 0.07%) ~ ~ p=0.001 n=6
Types 93,390 93,429 +39 (+ 0.04%) ~ ~ p=0.001 n=6
Memory used 369,357k (± 0.03%) 372,388k (± 0.01%) +3,032k (+ 0.82%) 372,344k 372,458k p=0.005 n=6
Parse Time 2.83s (± 1.12%) 2.86s (± 1.83%) ~ 2.82s 2.96s p=0.809 n=6
Bind Time 1.59s (± 1.01%) 1.55s (± 3.98%) ~ 1.43s 1.59s p=0.213 n=6
Check Time 15.71s (± 0.29%) 16.78s (± 0.36%) 🔻+1.07s (+ 6.82%) 16.71s 16.88s p=0.005 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 20.13s (± 0.34%) 21.20s (± 0.28%) 🔻+1.07s (+ 5.30%) 21.11s 21.27s p=0.005 n=6
vscode - node (v18.15.0, x64)
Errors 4 4 ~ ~ ~ p=1.000 n=6
Symbols 2,799,024 2,804,031 +5,007 (+ 0.18%) ~ ~ p=0.001 n=6
Types 950,803 952,904 +2,101 (+ 0.22%) ~ ~ p=0.001 n=6
Memory used 2,926,597k (± 0.01%) 3,078,559k (± 0.00%) 🔻+151,962k (+ 5.19%) 3,078,514k 3,078,624k p=0.005 n=6
Parse Time 13.34s (± 0.22%) 13.34s (± 0.29%) ~ 13.29s 13.41s p=0.511 n=6
Bind Time 4.09s (± 0.46%) 4.10s (± 0.24%) ~ 4.09s 4.11s p=0.805 n=6
Check Time 73.01s (± 0.24%) 85.83s (± 0.63%) 🔻+12.82s (+17.56%) 85.32s 86.66s p=0.005 n=6
Emit Time 19.77s (± 2.11%) 48.37s (± 1.00%) 🔻+28.60s (+144.66%) 47.75s 48.89s p=0.005 n=6
Total Time 110.21s (± 0.31%) 151.65s (± 0.65%) 🔻+41.44s (+37.60%) 150.52s 152.93s p=0.005 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 265,853 265,879 +26 (+ 0.01%) ~ ~ p=0.001 n=6
Types 108,438 108,441 +3 (+ 0.00%) ~ ~ p=0.001 n=6
Memory used 410,473k (± 0.03%) 412,580k (± 0.02%) +2,107k (+ 0.51%) 412,467k 412,710k p=0.005 n=6
Parse Time 4.80s (± 0.80%) 4.78s (± 0.67%) ~ 4.74s 4.83s p=0.469 n=6
Bind Time 2.07s (± 0.94%) 2.08s (± 0.36%) ~ 2.07s 2.09s p=0.503 n=6
Check Time 21.14s (± 0.23%) 22.10s (± 0.20%) 🔻+0.95s (+ 4.50%) 22.04s 22.15s p=0.005 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 28.01s (± 0.28%) 28.96s (± 0.22%) +0.95s (+ 3.37%) 28.87s 29.01s p=0.005 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 523,981 524,011 +30 (+ 0.01%) ~ ~ p=0.001 n=6
Types 178,708 178,708 ~ ~ ~ p=1.000 n=6
Memory used 461,306k (± 0.02%) 462,269k (± 0.02%) +963k (+ 0.21%) 462,177k 462,387k p=0.005 n=6
Parse Time 3.11s (± 0.52%) 3.14s (± 0.57%) +0.03s (+ 0.86%) 3.11s 3.16s p=0.041 n=6
Bind Time 1.18s (± 0.54%) 1.18s (± 0.44%) ~ 1.18s 1.19s p=0.386 n=6
Check Time 18.18s (± 0.78%) 18.54s (± 0.63%) +0.37s (+ 2.02%) 18.38s 18.69s p=0.005 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.47s (± 0.64%) 22.87s (± 0.46%) +0.39s (+ 1.75%) 22.72s 23.00s p=0.005 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:

Download Benchmarks


!!!! File file1.js missing from original emit, but present in noCheck emit
//// [file1.js]
export const x = 3;
Copy link
Member Author

Choose a reason for hiding this comment

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

No checker error, so the emit happens. 🤷‍♂️

}
declare var k: c | m.c;
-declare var l: c | m.c;
+declare var l: m.c | c;
Copy link
Member Author

Choose a reason for hiding this comment

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

Union order swaps - the EmitResolver during js+.d.ts emit happens to create these types in the reverse order of a full typecheck.

!!! related TS2304 multiLinePropertyAccessAndArrowFunctionIndent1.ts:1:18: Cannot find name 'role'.
!!! related TS2304 multiLinePropertyAccessAndArrowFunctionIndent1.ts:2:18: Cannot find name 'Role'.
!!! related TS2503 multiLinePropertyAccessAndArrowFunctionIndent1.ts:4:26: Cannot find namespace 'ng'.
!!! related TS2304 multiLinePropertyAccessAndArrowFunctionIndent1.ts:4:53: Cannot find name 'Role'.
Copy link
Member Author

Choose a reason for hiding this comment

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

The top-level return is a grammar error that normally blocks us reporting all these errors. Calculating emit flags for them lazily, however, manifests these errors. Do note: this is also technically a correctness improvement - previously, block scoped bindings and the like inside a top-level return like this wouldn't get transformed according to the target because we'd assume we'd calculated their NodeCheckFlags when in fact we hadn't. Still, these errors are basically silent, even if they're reasonable, hence the warning in the error log. I could probably silence these and get the old behavior back if I really tried, I'm just not sure it's necessary.


!!!! File all.d.ts missing from original emit, but present in noCheck emit
//// [all.d.ts]
declare module "ref/a" {
Copy link
Member Author

Choose a reason for hiding this comment

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

Now that this isn't emitDeclarationOnly, this configuration of compiler options is forbidden, thus produces no output again. (Even with noCheck)

@@ -846,7 +846,7 @@ type AnyArr = [...any];
declare const tc4: [...string[], number, number, number];
declare function concat2<T extends readonly unknown[], U extends readonly unknown[]>(t: T, u: U): (T[number] | U[number])[];
-declare const tc5: (2 | 4 | 1 | 3 | 6 | 5)[];
+declare const tc5: (1 | 2 | 3 | 6 | 4 | 5)[];
+declare const tc5: (3 | 2 | 1 | 6 | 4 | 5)[];
Copy link
Member Author

Choose a reason for hiding this comment

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

This union order shifts again. Presumably the EmitResolver usages in js emit tweak the order we manifest these number types in.


!!!! File autoAccessor1.js missing from original emit, but present in noCheck emit
//// [autoAccessor1.js]
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
Copy link
Member Author

Choose a reason for hiding this comment

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

The target error for auto-accessors, Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher. is a checker error. So when it's suppressed, we happily do emit.

@weswigham weswigham changed the title Enable JS emit for noCheck Enable JS emit for noCheck and noCheck for transpileModule Apr 30, 2024
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.a = void 0;
-exports.a = x.c;
Copy link
Member Author

Choose a reason for hiding this comment

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

I think this is a case where the noCheck output is an improvement. As a perf optimization, I made reference marking with an Unspecified hint skip all Ambient nodes - that causes this change. The export declare import statement in this file usually gets transformed into the output js, even though it has a declare modifier. That's likely because the declare modifier on an import is an error, so the alias marking is done unconditionally. In any case, since the input has a syntax/grammar type error, I think it's fine for the output to diverge a bit like this. I could bring it in-line (either by changing normal behavior to elide this, or noCheck to retain it), but I'm not sure it's worth the effort, given the error.

@weswigham
Copy link
Member Author

@typescript-bot perf test this faster

I still need to sprinkle around setting the calculatedFlags for nodes during the full typecheck pass (likely just by setting all of them when the node is visited), so this should still have perf impact, just less than before.

@typescript-bot
Copy link
Collaborator

typescript-bot commented May 14, 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

@weswigham
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,155 +1 (+ 0.00%) ~ ~ p=0.001 n=6
Types 50,248 50,251 +3 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 192,387k (± 0.10%) 205,440k (± 0.44%) 🔻+13,053k (+ 6.78%) 205,031k 207,300k p=0.005 n=6
Parse Time 1.56s (± 0.96%) 1.55s (± 1.38%) ~ 1.52s 1.57s p=0.183 n=6
Bind Time 0.87s (± 1.19%) 0.87s (± 1.53%) ~ 0.86s 0.89s p=0.923 n=6
Check Time 11.32s (± 0.30%) 11.38s (± 0.34%) +0.06s (+ 0.52%) 11.32s 11.42s p=0.035 n=6
Emit Time 3.16s (± 0.77%) 4.79s (± 0.64%) 🔻+1.64s (+51.90%) 4.77s 4.85s p=0.005 n=6
Total Time 16.91s (± 0.21%) 18.59s (± 0.36%) 🔻+1.68s (+ 9.93%) 18.50s 18.68s p=0.005 n=6
angular-1 - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 944,110 944,377 +267 (+ 0.03%) ~ ~ p=0.001 n=6
Types 407,140 407,284 +144 (+ 0.04%) ~ ~ p=0.001 n=6
Memory used 1,222,041k (± 0.00%) 1,241,149k (± 0.00%) +19,108k (+ 1.56%) 1,241,069k 1,241,223k p=0.005 n=6
Parse Time 8.07s (± 0.71%) 8.08s (± 0.32%) ~ 8.03s 8.10s p=0.935 n=6
Bind Time 2.24s (± 0.47%) 2.23s (± 0.75%) ~ 2.21s 2.25s p=0.742 n=6
Check Time 36.26s (± 0.47%) 36.42s (± 0.40%) ~ 36.20s 36.64s p=0.148 n=6
Emit Time 17.40s (± 0.38%) 21.35s (± 0.69%) 🔻+3.94s (+22.66%) 21.16s 21.53s p=0.005 n=6
Total Time 63.97s (± 0.29%) 68.08s (± 0.34%) 🔻+4.11s (+ 6.43%) 67.68s 68.33s p=0.005 n=6
mui-docs - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 1,964,276 1,964,276 ~ ~ ~ p=1.000 n=6
Types 819,365 819,365 ~ ~ ~ p=1.000 n=6
Memory used 1,849,721k (± 0.00%) 1,849,735k (± 0.00%) ~ 1,849,667k 1,849,851k p=0.810 n=6
Parse Time 8.05s (± 0.52%) 8.05s (± 0.36%) ~ 8.02s 8.09s p=1.000 n=6
Bind Time 2.74s (± 1.23%) 2.72s (± 0.45%) ~ 2.70s 2.73s p=0.103 n=6
Check Time 69.19s (± 0.30%) 69.30s (± 0.68%) ~ 68.72s 69.78s p=0.574 n=6
Emit Time 0.17s (± 3.32%) 0.17s (± 3.10%) ~ 0.16s 0.17s p=0.640 n=6
Total Time 80.15s (± 0.20%) 80.23s (± 0.60%) ~ 79.64s 80.70s p=0.630 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,221,216 1,221,413 +197 (+ 0.02%) ~ ~ p=0.001 n=6
Types 259,517 259,546 +29 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 2,337,342k (± 0.03%) 2,337,909k (± 0.03%) ~ 2,337,023k 2,339,287k p=0.298 n=6
Parse Time 5.05s (± 1.19%) 5.00s (± 0.64%) ~ 4.97s 5.05s p=0.128 n=6
Bind Time 1.88s (± 0.87%) 1.89s (± 0.62%) ~ 1.88s 1.91s p=0.462 n=6
Check Time 33.77s (± 0.20%) 33.98s (± 0.22%) +0.20s (+ 0.60%) 33.85s 34.06s p=0.008 n=6
Emit Time 2.66s (± 1.35%) 2.68s (± 1.33%) ~ 2.63s 2.72s p=0.521 n=6
Total Time 43.37s (± 0.25%) 43.56s (± 0.32%) +0.19s (+ 0.43%) 43.37s 43.77s p=0.045 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,221,216 1,221,413 +197 (+ 0.02%) ~ ~ p=0.001 n=6
Types 259,517 259,546 +29 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 2,413,862k (± 0.01%) 2,415,295k (± 0.01%) +1,433k (+ 0.06%) 2,414,897k 2,415,795k p=0.005 n=6
Parse Time 7.75s (± 0.72%) 7.64s (± 0.42%) -0.11s (- 1.36%) 7.61s 7.70s p=0.012 n=6
Bind Time 2.50s (± 0.55%) 2.49s (± 0.72%) ~ 2.46s 2.51s p=0.293 n=6
Check Time 49.70s (± 0.23%) 50.01s (± 0.28%) +0.31s (+ 0.62%) 49.83s 50.14s p=0.013 n=6
Emit Time 3.94s (± 3.17%) 3.83s (± 0.94%) ~ 3.78s 3.87s p=0.128 n=6
Total Time 63.89s (± 0.32%) 64.00s (± 0.27%) ~ 63.78s 64.21s p=0.298 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 256,767 256,845 +78 (+ 0.03%) ~ ~ p=0.001 n=6
Types 104,587 104,616 +29 (+ 0.03%) ~ ~ p=0.001 n=6
Memory used 426,112k (± 0.03%) 426,413k (± 0.01%) +301k (+ 0.07%) 426,362k 426,466k p=0.005 n=6
Parse Time 3.38s (± 0.49%) 3.37s (± 0.58%) ~ 3.34s 3.39s p=0.745 n=6
Bind Time 1.32s (± 0.68%) 1.33s (± 0.31%) +0.01s (+ 0.88%) 1.33s 1.34s p=0.025 n=6
Check Time 17.90s (± 0.18%) 18.01s (± 0.46%) ~ 17.86s 18.10s p=0.053 n=6
Emit Time 1.38s (± 0.85%) 1.37s (± 1.75%) ~ 1.34s 1.40s p=0.410 n=6
Total Time 23.98s (± 0.09%) 24.08s (± 0.47%) ~ 23.88s 24.21s p=0.063 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 224,575 224,575 ~ ~ ~ p=1.000 n=6
Types 93,785 93,785 ~ ~ ~ p=1.000 n=6
Memory used 369,901k (± 0.03%) 369,906k (± 0.03%) ~ 369,775k 370,060k p=1.000 n=6
Parse Time 2.83s (± 0.41%) 2.86s (± 2.04%) ~ 2.81s 2.97s p=0.569 n=6
Bind Time 1.58s (± 0.74%) 1.56s (± 3.93%) ~ 1.44s 1.61s p=0.934 n=6
Check Time 15.67s (± 0.39%) 15.74s (± 0.19%) +0.08s (+ 0.49%) 15.70s 15.78s p=0.037 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 20.07s (± 0.35%) 20.16s (± 0.25%) +0.09s (+ 0.42%) 20.08s 20.21s p=0.043 n=6
vscode - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,823,555 2,825,537 +1,982 (+ 0.07%) ~ ~ p=0.001 n=6
Types 957,785 958,891 +1,106 (+ 0.12%) ~ ~ p=0.001 n=6
Memory used 2,995,829k (± 0.00%) 3,118,275k (± 0.00%) 🔻+122,446k (+ 4.09%) 3,118,194k 3,118,353k p=0.005 n=6
Parse Time 16.92s (± 0.14%) 16.95s (± 0.25%) ~ 16.90s 17.01s p=0.226 n=6
Bind Time 5.01s (± 0.28%) 5.00s (± 0.21%) ~ 4.98s 5.01s p=0.118 n=6
Check Time 88.58s (± 0.49%) 88.50s (± 0.29%) ~ 88.14s 88.89s p=0.423 n=6
Emit Time 28.64s (± 0.47%) 46.72s (± 0.64%) 🔻+18.08s (+63.14%) 46.38s 47.10s p=0.005 n=6
Total Time 139.14s (± 0.34%) 157.17s (± 0.25%) 🔻+18.03s (+12.96%) 156.62s 157.71s p=0.005 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 265,866 265,866 ~ ~ ~ p=1.000 n=6
Types 108,401 108,401 ~ ~ ~ p=1.000 n=6
Memory used 410,620k (± 0.02%) 410,632k (± 0.02%) ~ 410,518k 410,736k p=0.810 n=6
Parse Time 4.73s (± 0.82%) 4.76s (± 1.23%) ~ 4.71s 4.85s p=0.468 n=6
Bind Time 2.06s (± 1.18%) 2.07s (± 0.79%) ~ 2.05s 2.09s p=0.806 n=6
Check Time 21.03s (± 0.42%) 21.06s (± 0.63%) ~ 20.91s 21.29s p=0.630 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 27.83s (± 0.36%) 27.89s (± 0.38%) ~ 27.74s 28.05s p=0.470 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 524,639 524,639 ~ ~ ~ p=1.000 n=6
Types 178,906 178,906 ~ ~ ~ p=1.000 n=6
Memory used 462,733k (± 0.02%) 462,688k (± 0.01%) ~ 462,636k 462,723k p=0.471 n=6
Parse Time 2.61s (± 0.29%) 2.60s (± 0.45%) ~ 2.58s 2.61s p=0.383 n=6
Bind Time 0.98s (± 0.52%) 0.98s (± 0.64%) ~ 0.97s 0.99s p=0.386 n=6
Check Time 15.31s (± 0.45%) 15.37s (± 0.47%) ~ 15.27s 15.48s p=0.170 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 18.90s (± 0.40%) 18.95s (± 0.36%) ~ 18.85s 19.04s p=0.199 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:

Download Benchmarks

@weswigham
Copy link
Member Author

Much better, no more check regressions, only emit ones, and those aughta get fixed with proper application of .calculatedFlags during the checker walk (though it's admittedly pretty odd that only some projects with emit show the perf regression - maybe those projects have settings such that they don't really look at NodeCheckFlags?).

@weswigham
Copy link
Member Author

@typescript-bot perf test this faster

@typescript-bot
Copy link
Collaborator

typescript-bot commented May 15, 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

@weswigham
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,155 +1 (+ 0.00%) ~ ~ p=0.001 n=6
Types 50,248 50,251 +3 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 192,255k (± 0.03%) 191,841k (± 0.09%) -414k (- 0.22%) 191,736k 192,184k p=0.008 n=6
Parse Time 1.56s (± 1.55%) 1.57s (± 1.24%) ~ 1.53s 1.58s p=0.186 n=6
Bind Time 0.87s (± 0.87%) 0.86s (± 0.73%) ~ 0.85s 0.87s p=0.081 n=6
Check Time 11.31s (± 0.41%) 11.33s (± 0.50%) ~ 11.24s 11.39s p=0.629 n=6
Emit Time 3.15s (± 0.37%) 4.04s (± 0.26%) 🔻+0.90s (+28.48%) 4.03s 4.06s p=0.005 n=6
Total Time 16.88s (± 0.33%) 17.80s (± 0.25%) 🔻+0.92s (+ 5.46%) 17.74s 17.86s p=0.005 n=6
angular-1 - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 944,110 944,377 +267 (+ 0.03%) ~ ~ p=0.001 n=6
Types 407,140 407,284 +144 (+ 0.04%) ~ ~ p=0.001 n=6
Memory used 1,222,053k (± 0.01%) 1,222,445k (± 0.00%) +392k (+ 0.03%) 1,222,405k 1,222,474k p=0.005 n=6
Parse Time 8.06s (± 0.37%) 8.11s (± 0.26%) +0.04s (+ 0.54%) 8.08s 8.13s p=0.019 n=6
Bind Time 2.24s (± 0.52%) 2.23s (± 0.55%) ~ 2.23s 2.26s p=0.389 n=6
Check Time 36.52s (± 0.59%) 36.51s (± 0.45%) ~ 36.35s 36.83s p=1.000 n=6
Emit Time 17.51s (± 0.42%) 20.36s (± 0.41%) 🔻+2.85s (+16.26%) 20.25s 20.50s p=0.005 n=6
Total Time 64.34s (± 0.42%) 67.21s (± 0.35%) 🔻+2.87s (+ 4.47%) 66.99s 67.66s p=0.005 n=6
mui-docs - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 1,964,167 1,964,167 ~ ~ ~ p=1.000 n=6
Types 819,279 819,279 ~ ~ ~ p=1.000 n=6
Memory used 1,849,638k (± 0.00%) 1,849,675k (± 0.00%) +37k (+ 0.00%) 1,849,622k 1,849,709k p=0.045 n=6
Parse Time 6.77s (± 0.39%) 6.77s (± 0.31%) ~ 6.74s 6.80s p=0.805 n=6
Bind Time 2.29s 2.29s (± 0.62%) ~ 2.27s 2.31s p=1.000 n=6
Check Time 58.88s (± 0.29%) 58.69s (± 0.48%) ~ 58.30s 59.06s p=0.226 n=6
Emit Time 0.14s (± 3.60%) 0.14s (± 3.60%) ~ 0.14s 0.15s p=1.000 n=6
Total Time 68.08s (± 0.26%) 67.89s (± 0.42%) ~ 67.49s 68.25s p=0.298 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,221,216 1,221,413 +197 (+ 0.02%) ~ ~ p=0.001 n=6
Types 259,517 259,546 +29 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 2,388,033k (± 3.26%) 2,364,164k (± 2.56%) ~ 2,337,968k 2,487,875k p=0.471 n=6
Parse Time 6.02s (± 0.48%) 5.97s (± 1.19%) ~ 5.85s 6.04s p=0.228 n=6
Bind Time 2.26s (± 0.61%) 2.25s (± 0.78%) ~ 2.22s 2.27s p=0.126 n=6
Check Time 39.70s (± 0.47%) 39.92s (± 0.52%) ~ 39.61s 40.12s p=0.093 n=6
Emit Time 3.15s (± 1.92%) 3.13s (± 2.94%) ~ 3.04s 3.24s p=0.810 n=6
Total Time 51.15s (± 0.25%) 51.27s (± 0.53%) ~ 51.01s 51.61s p=0.575 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,221,216 1,221,413 +197 (+ 0.02%) ~ ~ p=0.001 n=6
Types 259,517 259,546 +29 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 2,413,884k (± 0.02%) 2,415,052k (± 0.02%) +1,168k (+ 0.05%) 2,414,104k 2,415,414k p=0.020 n=6
Parse Time 6.22s (± 1.38%) 6.18s (± 0.91%) ~ 6.11s 6.27s p=0.470 n=6
Bind Time 2.03s (± 0.60%) 2.03s (± 0.86%) ~ 2.01s 2.06s p=0.627 n=6
Check Time 40.23s (± 0.40%) 40.34s (± 0.34%) ~ 40.15s 40.56s p=0.199 n=6
Emit Time 3.18s (± 3.62%) 3.10s (± 2.72%) ~ 2.99s 3.25s p=0.378 n=6
Total Time 51.69s (± 0.54%) 51.67s (± 0.37%) ~ 51.43s 51.89s p=0.810 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 256,767 256,845 +78 (+ 0.03%) ~ ~ p=0.001 n=6
Types 104,587 104,616 +29 (+ 0.03%) ~ ~ p=0.001 n=6
Memory used 426,107k (± 0.03%) 426,389k (± 0.01%) +282k (+ 0.07%) 426,297k 426,434k p=0.008 n=6
Parse Time 4.18s (± 0.75%) 4.17s (± 0.66%) ~ 4.13s 4.20s p=0.871 n=6
Bind Time 1.62s (± 0.65%) 1.61s (± 1.73%) ~ 1.57s 1.64s p=1.000 n=6
Check Time 22.21s (± 0.34%) 22.30s (± 0.45%) ~ 22.19s 22.43s p=0.334 n=6
Emit Time 1.71s (± 1.67%) 1.73s (± 0.94%) ~ 1.71s 1.75s p=0.225 n=6
Total Time 29.71s (± 0.28%) 29.81s (± 0.29%) ~ 29.73s 29.92s p=0.148 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 224,575 224,575 ~ ~ ~ p=1.000 n=6
Types 93,785 93,785 ~ ~ ~ p=1.000 n=6
Memory used 369,905k (± 0.01%) 369,934k (± 0.02%) ~ 369,796k 370,009k p=0.378 n=6
Parse Time 2.83s (± 1.06%) 2.84s (± 0.82%) ~ 2.80s 2.86s p=0.683 n=6
Bind Time 1.59s (± 0.69%) 1.58s (± 0.77%) ~ 1.57s 1.60s p=0.507 n=6
Check Time 15.69s (± 0.38%) 15.70s (± 0.13%) ~ 15.68s 15.74s p=0.418 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 20.11s (± 0.32%) 20.13s (± 0.16%) ~ 20.10s 20.18s p=0.421 n=6
vscode - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,823,941 2,825,923 +1,982 (+ 0.07%) ~ ~ p=0.001 n=6
Types 957,912 959,018 +1,106 (+ 0.12%) ~ ~ p=0.001 n=6
Memory used 2,996,271k (± 0.00%) 2,996,190k (± 0.00%) -81k (- 0.00%) 2,996,136k 2,996,267k p=0.020 n=6
Parse Time 16.94s (± 0.28%) 16.93s (± 0.24%) ~ 16.85s 16.97s p=0.628 n=6
Bind Time 5.01s (± 0.22%) 5.01s (± 0.38%) ~ 4.99s 5.04s p=0.933 n=6
Check Time 88.96s (± 0.40%) 88.54s (± 0.34%) ~ 88.13s 88.97s p=0.093 n=6
Emit Time 28.65s (± 0.59%) 41.55s (± 0.69%) 🔻+12.90s (+45.03%) 41.12s 41.78s p=0.005 n=6
Total Time 139.55s (± 0.31%) 152.03s (± 0.36%) 🔻+12.47s (+ 8.94%) 151.34s 152.55s p=0.005 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 265,866 265,866 ~ ~ ~ p=1.000 n=6
Types 108,401 108,401 ~ ~ ~ p=1.000 n=6
Memory used 410,525k (± 0.01%) 410,503k (± 0.02%) ~ 410,453k 410,609k p=0.423 n=6
Parse Time 3.84s (± 1.10%) 3.82s (± 1.39%) ~ 3.76s 3.90s p=0.468 n=6
Bind Time 1.66s (± 1.25%) 1.66s (± 0.62%) ~ 1.64s 1.67s p=0.803 n=6
Check Time 16.89s (± 0.35%) 16.92s (± 0.34%) ~ 16.86s 17.00s p=0.422 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.39s (± 0.24%) 22.40s (± 0.28%) ~ 22.30s 22.47s p=0.747 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 524,639 524,639 ~ ~ ~ p=1.000 n=6
Types 178,906 178,906 ~ ~ ~ p=1.000 n=6
Memory used 462,713k (± 0.03%) 462,728k (± 0.01%) ~ 462,660k 462,817k p=0.521 n=6
Parse Time 3.89s (± 0.60%) 3.88s (± 0.41%) ~ 3.86s 3.90s p=0.415 n=6
Bind Time 1.45s (± 1.71%) 1.44s (± 1.73%) ~ 1.42s 1.49s p=0.516 n=6
Check Time 22.41s (± 0.75%) 22.65s (± 0.47%) +0.25s (+ 1.09%) 22.50s 22.82s p=0.013 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 27.75s (± 0.50%) 27.97s (± 0.36%) +0.22s (+ 0.80%) 27.84s 28.13s p=0.020 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:

Download Benchmarks

@weswigham
Copy link
Member Author

@typescript-bot perf test this faster

@typescript-bot
Copy link
Collaborator

typescript-bot commented May 15, 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

@weswigham
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,155 +1 (+ 0.00%) ~ ~ p=0.001 n=6
Types 50,248 50,251 +3 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 193,418k (± 0.97%) 193,538k (± 0.98%) ~ 191,747k 195,341k p=0.378 n=6
Parse Time 1.29s (± 1.88%) 1.29s (± 1.88%) ~ 1.25s 1.31s p=1.000 n=6
Bind Time 0.72s 0.72s ~ ~ ~ p=1.000 n=6
Check Time 9.54s (± 0.19%) 9.61s (± 0.24%) +0.07s (+ 0.72%) 9.58s 9.64s p=0.005 n=6
Emit Time 2.65s (± 0.66%) 3.39s (± 0.97%) 🔻+0.74s (+28.09%) 3.33s 3.43s p=0.005 n=6
Total Time 14.20s (± 0.21%) 15.01s (± 0.41%) 🔻+0.81s (+ 5.72%) 14.90s 15.07s p=0.005 n=6
angular-1 - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 944,110 944,377 +267 (+ 0.03%) ~ ~ p=0.001 n=6
Types 407,140 407,284 +144 (+ 0.04%) ~ ~ p=0.001 n=6
Memory used 1,222,132k (± 0.01%) 1,222,504k (± 0.01%) +372k (+ 0.03%) 1,222,362k 1,222,581k p=0.005 n=6
Parse Time 6.79s (± 0.50%) 6.78s (± 0.54%) ~ 6.74s 6.83s p=1.000 n=6
Bind Time 1.88s (± 0.56%) 1.87s (± 0.48%) ~ 1.86s 1.88s p=0.452 n=6
Check Time 31.32s (± 0.33%) 31.32s (± 0.50%) ~ 31.07s 31.46s p=1.000 n=6
Emit Time 14.74s (± 0.65%) 17.24s (± 0.76%) 🔻+2.50s (+16.96%) 17.10s 17.43s p=0.005 n=6
Total Time 54.73s (± 0.25%) 57.22s (± 0.42%) 🔻+2.49s (+ 4.56%) 56.82s 57.50s p=0.005 n=6
mui-docs - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 1,964,176 1,964,176 ~ ~ ~ p=1.000 n=6
Types 819,283 819,283 ~ ~ ~ p=1.000 n=6
Memory used 1,849,541k (± 0.00%) 1,849,717k (± 0.00%) +176k (+ 0.01%) 1,849,696k 1,849,745k p=0.005 n=6
Parse Time 8.03s (± 0.19%) 8.04s (± 0.38%) ~ 8.01s 8.10s p=0.805 n=6
Bind Time 2.74s (± 1.34%) 2.73s (± 0.77%) ~ 2.71s 2.76s p=0.807 n=6
Check Time 69.29s (± 0.43%) 69.52s (± 0.37%) ~ 69.17s 69.78s p=0.378 n=6
Emit Time 0.17s (± 3.10%) 0.17s (± 2.42%) ~ 0.16s 0.17s p=0.595 n=6
Total Time 80.23s (± 0.39%) 80.46s (± 0.36%) ~ 80.08s 80.74s p=0.423 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,221,221 1,221,418 +197 (+ 0.02%) ~ ~ p=0.001 n=6
Types 259,523 259,552 +29 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 2,337,909k (± 0.02%) 2,363,689k (± 2.61%) ~ 2,337,890k 2,489,811k p=0.066 n=6
Parse Time 5.05s (± 0.93%) 5.02s (± 1.36%) ~ 4.95s 5.12s p=0.230 n=6
Bind Time 1.88s (± 0.64%) 1.88s (± 0.89%) ~ 1.85s 1.90s p=0.360 n=6
Check Time 33.87s (± 0.34%) 33.92s (± 0.31%) ~ 33.81s 34.06s p=0.575 n=6
Emit Time 2.63s (± 1.38%) 2.66s (± 2.63%) ~ 2.58s 2.76s p=0.470 n=6
Total Time 43.42s (± 0.30%) 43.50s (± 0.41%) ~ 43.28s 43.79s p=0.423 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,221,221 1,221,418 +197 (+ 0.02%) ~ ~ p=0.001 n=6
Types 259,523 259,552 +29 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 2,414,128k (± 0.01%) 2,414,654k (± 0.04%) ~ 2,413,128k 2,415,607k p=0.230 n=6
Parse Time 6.20s (± 0.64%) 6.16s (± 0.97%) ~ 6.09s 6.26s p=0.173 n=6
Bind Time 2.02s (± 1.07%) 2.03s (± 1.47%) ~ 2.00s 2.07s p=0.687 n=6
Check Time 40.12s (± 0.30%) 40.29s (± 0.27%) +0.17s (+ 0.43%) 40.15s 40.40s p=0.031 n=6
Emit Time 3.10s (± 2.29%) 3.11s (± 2.71%) ~ 3.02s 3.22s p=0.748 n=6
Total Time 51.45s (± 0.34%) 51.60s (± 0.29%) ~ 51.36s 51.80s p=0.230 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 256,767 256,845 +78 (+ 0.03%) ~ ~ p=0.001 n=6
Types 104,587 104,616 +29 (+ 0.03%) ~ ~ p=0.001 n=6
Memory used 426,103k (± 0.03%) 426,358k (± 0.01%) +255k (+ 0.06%) 426,325k 426,383k p=0.005 n=6
Parse Time 2.79s (± 0.30%) 2.78s (± 0.73%) ~ 2.75s 2.81s p=0.171 n=6
Bind Time 1.10s (± 1.06%) 1.11s +0.01s (+ 1.06%) ~ ~ p=0.028 n=6
Check Time 15.19s (± 0.27%) 15.30s (± 0.35%) +0.11s (+ 0.70%) 15.24s 15.40s p=0.006 n=6
Emit Time 1.16s (± 0.44%) 1.14s (± 0.71%) -0.02s (- 1.72%) 1.13s 1.15s p=0.004 n=6
Total Time 20.25s (± 0.23%) 20.34s (± 0.18%) +0.09s (+ 0.43%) 20.29s 20.40s p=0.010 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 224,575 224,575 ~ ~ ~ p=1.000 n=6
Types 93,785 93,785 ~ ~ ~ p=1.000 n=6
Memory used 369,831k (± 0.03%) 369,849k (± 0.04%) ~ 369,714k 370,098k p=1.000 n=6
Parse Time 3.52s (± 1.01%) 3.50s (± 1.02%) ~ 3.45s 3.55s p=0.518 n=6
Bind Time 1.93s (± 0.85%) 1.93s (± 1.24%) ~ 1.89s 1.96s p=1.000 n=6
Check Time 19.32s (± 0.30%) 19.34s (± 0.32%) ~ 19.26s 19.43s p=0.747 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 24.77s (± 0.23%) 24.77s (± 0.25%) ~ 24.70s 24.87s p=0.630 n=6
vscode - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,823,941 2,825,923 +1,982 (+ 0.07%) ~ ~ p=0.001 n=6
Types 957,912 959,018 +1,106 (+ 0.12%) ~ ~ p=0.001 n=6
Memory used 2,996,264k (± 0.00%) 2,996,204k (± 0.00%) ~ 2,996,140k 2,996,288k p=0.065 n=6
Parse Time 16.96s (± 0.22%) 16.94s (± 0.32%) ~ 16.87s 17.03s p=0.226 n=6
Bind Time 5.00s (± 0.23%) 5.00s (± 0.21%) ~ 4.99s 5.02s p=0.615 n=6
Check Time 88.52s (± 0.15%) 88.43s (± 0.16%) ~ 88.24s 88.61s p=0.261 n=6
Emit Time 28.75s (± 1.17%) 41.63s (± 0.31%) 🔻+12.88s (+44.80%) 41.47s 41.81s p=0.005 n=6
Total Time 139.23s (± 0.31%) 152.00s (± 0.14%) 🔻+12.78s (+ 9.18%) 151.66s 152.31s p=0.005 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 265,866 265,866 ~ ~ ~ p=1.000 n=6
Types 108,401 108,401 ~ ~ ~ p=1.000 n=6
Memory used 410,600k (± 0.03%) 410,485k (± 0.01%) -115k (- 0.03%) 410,443k 410,539k p=0.031 n=6
Parse Time 3.85s (± 0.93%) 3.85s (± 0.65%) ~ 3.80s 3.87s p=0.806 n=6
Bind Time 1.67s (± 0.33%) 1.67s (± 1.35%) ~ 1.63s 1.70s p=0.663 n=6
Check Time 17.02s (± 0.32%) 16.92s (± 0.26%) -0.10s (- 0.59%) 16.86s 16.98s p=0.013 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.53s (± 0.13%) 22.44s (± 0.20%) -0.09s (- 0.41%) 22.38s 22.49s p=0.008 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 524,639 524,639 ~ ~ ~ p=1.000 n=6
Types 178,906 178,906 ~ ~ ~ p=1.000 n=6
Memory used 462,686k (± 0.01%) 462,738k (± 0.02%) ~ 462,665k 462,889k p=0.128 n=6
Parse Time 3.11s (± 0.52%) 3.11s (± 0.47%) ~ 3.09s 3.13s p=0.870 n=6
Bind Time 1.16s (± 0.72%) 1.17s (± 0.44%) ~ 1.16s 1.17s p=0.533 n=6
Check Time 18.31s (± 0.39%) 18.42s (± 0.51%) +0.11s (+ 0.62%) 18.31s 18.56s p=0.045 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.59s (± 0.26%) 22.70s (± 0.45%) ~ 22.56s 22.85s p=0.054 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:

Download Benchmarks

@@ -5761,10 +5777,11 @@ export interface EmitResolver {
isValueAliasDeclaration(node: Node): boolean;
isReferencedAliasDeclaration(node: Node, checkChildren?: boolean): boolean;
isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): boolean;
getNodeCheckFlags(node: Node): NodeCheckFlags;
hasNodeCheckFlag(node: Node, flags: LazyNodeCheckFlags): boolean;
Copy link
Member

Choose a reason for hiding this comment

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

All in all, I wonder how many other flag checks could be done like this (I did something similar for another flag which helped perf too)

@weswigham
Copy link
Member Author

@typescript-bot perf test this faster

@typescript-bot
Copy link
Collaborator

typescript-bot commented May 16, 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

@weswigham
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,248 50,248 ~ ~ ~ p=1.000 n=6
Memory used 193,500k (± 0.99%) 192,971k (± 0.73%) ~ 192,241k 195,823k p=0.689 n=6
Parse Time 1.56s (± 2.13%) 1.56s (± 1.75%) ~ 1.52s 1.59s p=1.000 n=6
Bind Time 0.87s (± 1.53%) 0.86s (± 1.20%) ~ 0.85s 0.88s p=0.591 n=6
Check Time 11.33s (± 0.50%) 11.38s (± 0.52%) ~ 11.29s 11.46s p=0.422 n=6
Emit Time 3.16s (± 0.95%) 3.29s (± 0.83%) 🔻+0.13s (+ 4.27%) 3.26s 3.33s p=0.005 n=6
Total Time 16.92s (± 0.44%) 17.09s (± 0.40%) +0.17s (+ 1.00%) 17.00s 17.20s p=0.006 n=6
angular-1 - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 944,110 944,114 +4 (+ 0.00%) ~ ~ p=0.001 n=6
Types 407,140 407,157 +17 (+ 0.00%) ~ ~ p=0.001 n=6
Memory used 1,222,121k (± 0.00%) 1,222,255k (± 0.01%) +134k (+ 0.01%) 1,222,176k 1,222,367k p=0.020 n=6
Parse Time 6.79s (± 0.48%) 6.78s (± 0.71%) ~ 6.72s 6.82s p=0.747 n=6
Bind Time 1.87s (± 0.65%) 1.87s (± 0.44%) ~ 1.86s 1.88s p=1.000 n=6
Check Time 31.28s (± 0.54%) 31.36s (± 0.55%) ~ 31.16s 31.54s p=0.630 n=6
Emit Time 14.76s (± 0.88%) 15.23s (± 0.74%) +0.47s (+ 3.16%) 15.09s 15.36s p=0.005 n=6
Total Time 54.71s (± 0.28%) 55.25s (± 0.57%) +0.54s (+ 0.98%) 54.86s 55.56s p=0.008 n=6
mui-docs - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 1,964,178 1,964,178 ~ ~ ~ p=1.000 n=6
Types 819,287 819,287 ~ ~ ~ p=1.000 n=6
Memory used 1,849,634k (± 0.00%) 1,849,684k (± 0.00%) ~ 1,849,616k 1,849,759k p=0.173 n=6
Parse Time 6.79s (± 0.39%) 6.78s (± 0.31%) ~ 6.74s 6.80s p=0.373 n=6
Bind Time 2.28s (± 0.54%) 2.28s (± 0.23%) ~ 2.28s 2.29s p=1.000 n=6
Check Time 58.85s (± 0.20%) 58.69s (± 0.45%) ~ 58.46s 59.15s p=0.149 n=6
Emit Time 0.14s (± 3.60%) 0.14s (± 5.69%) ~ 0.14s 0.16s p=0.752 n=6
Total Time 68.07s (± 0.19%) 67.89s (± 0.41%) ~ 67.66s 68.38s p=0.230 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,221,231 1,221,427 +196 (+ 0.02%) ~ ~ p=0.001 n=6
Types 259,523 259,552 +29 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 2,338,448k (± 0.03%) 2,338,319k (± 0.01%) ~ 2,338,118k 2,338,632k p=0.689 n=6
Parse Time 4.99s (± 1.00%) 5.06s (± 1.46%) ~ 4.98s 5.16s p=0.173 n=6
Bind Time 1.88s (± 0.45%) 1.88s (± 0.48%) ~ 1.87s 1.89s p=0.437 n=6
Check Time 33.87s (± 0.20%) 34.00s (± 0.20%) +0.13s (+ 0.38%) 33.93s 34.10s p=0.008 n=6
Emit Time 2.60s (± 3.28%) 2.66s (± 2.64%) ~ 2.54s 2.73s p=0.230 n=6
Total Time 43.36s (± 0.17%) 43.59s (± 0.28%) +0.23s (+ 0.53%) 43.44s 43.80s p=0.008 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,221,231 1,221,427 +196 (+ 0.02%) ~ ~ p=0.001 n=6
Types 259,523 259,552 +29 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 2,413,548k (± 0.03%) 2,414,146k (± 0.02%) ~ 2,413,523k 2,414,930k p=0.230 n=6
Parse Time 5.22s (± 1.00%) 5.20s (± 1.57%) ~ 5.09s 5.29s p=1.000 n=6
Bind Time 1.68s (± 0.45%) 1.69s (± 0.45%) ~ 1.68s 1.70s p=0.195 n=6
Check Time 34.24s (± 0.31%) 34.38s (± 0.31%) ~ 34.29s 34.54s p=0.128 n=6
Emit Time 2.64s (± 2.12%) 2.66s (± 2.27%) ~ 2.54s 2.70s p=0.422 n=6
Total Time 43.81s (± 0.24%) 43.95s (± 0.31%) +0.14s (+ 0.32%) 43.78s 44.15s p=0.045 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 256,768 256,845 +77 (+ 0.03%) ~ ~ p=0.001 n=6
Types 104,587 104,616 +29 (+ 0.03%) ~ ~ p=0.001 n=6
Memory used 426,156k (± 0.01%) 426,380k (± 0.01%) +224k (+ 0.05%) 426,283k 426,446k p=0.005 n=6
Parse Time 3.37s (± 0.62%) 3.33s (± 1.39%) ~ 3.29s 3.41s p=0.170 n=6
Bind Time 1.31s (± 0.89%) 1.32s (± 1.12%) ~ 1.30s 1.33s p=0.219 n=6
Check Time 17.88s (± 0.26%) 17.92s (± 0.29%) ~ 17.87s 17.97s p=0.088 n=6
Emit Time 1.39s (± 1.27%) 1.35s (± 1.51%) -0.04s (- 2.65%) 1.31s 1.37s p=0.009 n=6
Total Time 23.93s (± 0.20%) 23.93s (± 0.33%) ~ 23.83s 24.06s p=0.810 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 224,575 224,575 ~ ~ ~ p=1.000 n=6
Types 93,785 93,785 ~ ~ ~ p=1.000 n=6
Memory used 369,803k (± 0.01%) 369,970k (± 0.02%) +167k (+ 0.05%) 369,816k 370,039k p=0.020 n=6
Parse Time 3.53s (± 1.23%) 3.51s (± 0.71%) ~ 3.49s 3.56s p=0.871 n=6
Bind Time 1.93s (± 1.62%) 1.94s (± 0.92%) ~ 1.91s 1.96s p=0.685 n=6
Check Time 19.41s (± 0.26%) 19.39s (± 0.38%) ~ 19.30s 19.49s p=0.809 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 24.86s (± 0.34%) 24.84s (± 0.27%) ~ 24.75s 24.94s p=0.689 n=6
vscode - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,824,634 2,824,662 +28 (+ 0.00%) ~ ~ p=0.001 n=6
Types 958,192 958,235 +43 (+ 0.00%) ~ ~ p=0.001 n=6
Memory used 2,999,266k (± 0.00%) 2,999,315k (± 0.00%) ~ 2,999,221k 2,999,430k p=0.470 n=6
Parse Time 13.84s (± 0.21%) 13.83s (± 0.31%) ~ 13.79s 13.89s p=0.746 n=6
Bind Time 4.22s (± 2.64%) 4.14s (± 0.50%) ~ 4.11s 4.17s p=0.114 n=6
Check Time 73.56s (± 0.27%) 74.93s (± 3.31%) ~ 72.90s 78.42s p=1.000 n=6
Emit Time 23.79s (± 2.11%) 23.54s (± 8.29%) ~ 20.97s 24.86s p=0.471 n=6
Total Time 115.40s (± 0.47%) 116.43s (± 0.50%) +1.03s (+ 0.89%) 115.72s 117.42s p=0.031 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 265,866 265,866 ~ ~ ~ p=1.000 n=6
Types 108,401 108,401 ~ ~ ~ p=1.000 n=6
Memory used 410,592k (± 0.02%) 410,591k (± 0.02%) ~ 410,470k 410,685k p=1.000 n=6
Parse Time 4.76s (± 0.81%) 4.77s (± 0.99%) ~ 4.69s 4.82s p=0.630 n=6
Bind Time 2.06s (± 0.66%) 2.08s (± 1.40%) ~ 2.03s 2.11s p=0.145 n=6
Check Time 21.06s (± 0.41%) 20.95s (± 0.35%) ~ 20.81s 21.00s p=0.064 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 27.88s (± 0.32%) 27.80s (± 0.30%) ~ 27.69s 27.90s p=0.173 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 524,639 524,639 ~ ~ ~ p=1.000 n=6
Types 178,906 178,906 ~ ~ ~ p=1.000 n=6
Memory used 462,651k (± 0.02%) 462,667k (± 0.01%) ~ 462,638k 462,748k p=0.378 n=6
Parse Time 3.87s (± 0.34%) 3.89s (± 0.55%) ~ 3.85s 3.91s p=0.085 n=6
Bind Time 1.44s (± 1.02%) 1.44s (± 1.02%) ~ 1.42s 1.46s p=1.000 n=6
Check Time 22.48s (± 0.86%) 22.53s (± 0.96%) ~ 22.28s 22.82s p=0.810 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 27.80s (± 0.68%) 27.86s (± 0.72%) ~ 27.60s 28.14s p=0.810 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:

Download Benchmarks

@weswigham weswigham marked this pull request as ready for review May 16, 2024 19:53
@weswigham weswigham requested a review from jakebailey May 16, 2024 19:55
@jakebailey
Copy link
Member

For fun

@typescript-bot perf test this predictable

@typescript-bot
Copy link
Collaborator

typescript-bot commented May 16, 2024

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

Command Status Results
perf test this predictable ✅ 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
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,248 50,248 ~ ~ ~ p=1.000 n=6
Memory used 192,229k 192,251k +22k (+ 0.01%) ~ ~ p=0.001 n=6
Parse Time 1.55s (± 0.26%) 1.55s (± 0.49%) ~ 1.54s 1.56s p=1.000 n=6
Bind Time 0.85s (± 0.60%) 0.85s (± 0.60%) ~ 0.85s 0.86s p=1.000 n=6
Check Time 11.10s (± 0.17%) 11.04s (± 0.08%) -0.06s (- 0.50%) 11.03s 11.05s p=0.005 n=6
Emit Time 3.38s (± 0.15%) 3.52s (± 0.12%) 🔻+0.14s (+ 4.09%) 3.52s 3.53s p=0.003 n=6
Total Time 16.88s (± 0.09%) 16.96s (± 0.07%) +0.09s (+ 0.51%) 16.95s 16.98s p=0.005 n=6
angular-1 - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 944,110 944,114 +4 (+ 0.00%) ~ ~ p=0.001 n=6
Types 407,140 407,157 +17 (+ 0.00%) ~ ~ p=0.001 n=6
Memory used 1,222,410k (± 0.00%) 1,222,489k (± 0.00%) +79k (+ 0.01%) 1,222,377k 1,222,540k p=0.043 n=6
Parse Time 6.44s (± 0.15%) 6.44s (± 0.10%) ~ 6.43s 6.45s p=0.733 n=6
Bind Time 1.87s 1.87s (± 0.28%) ~ 1.87s 1.88s p=0.174 n=6
Check Time 33.39s (± 0.08%) 35.10s (± 3.14%) 🔻+1.71s (+ 5.12%) 33.66s 35.88s p=0.005 n=6
Emit Time 16.29s (± 0.75%) 15.60s (± 6.29%) ~ 14.95s 16.87s p=0.376 n=6
Total Time 57.99s (± 0.22%) 59.02s (± 0.23%) +1.02s (+ 1.76%) 58.85s 59.19s p=0.005 n=6
mui-docs - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 1,964,188 1,964,188 ~ ~ ~ p=1.000 n=6
Types 819,291 819,291 ~ ~ ~ p=1.000 n=6
Memory used 1,849,834k (± 0.00%) 1,849,846k (± 0.01%) ~ 1,849,614k 1,850,270k p=0.687 n=6
Parse Time 10.01s (± 0.14%) 10.01s (± 0.15%) ~ 10.00s 10.04s p=0.243 n=6
Bind Time 2.71s (± 0.20%) 2.71s ~ ~ ~ p=0.071 n=6
Check Time 90.75s (± 0.11%) 92.96s (± 1.55%) ~ 90.49s 94.21s p=0.065 n=6
Emit Time 0.21s (± 5.69%) 0.33s (±53.32%) ~ 0.21s 0.56s p=0.209 n=6
Total Time 103.68s (± 0.09%) 106.02s (± 1.33%) ~ 103.42s 107.14s p=0.066 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,221,231 1,221,427 +196 (+ 0.02%) ~ ~ p=0.001 n=6
Types 259,523 259,552 +29 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 2,339,017k (± 0.00%) 2,339,875k (± 0.00%) +858k (+ 0.04%) 2,339,829k 2,340,029k p=0.004 n=6
Parse Time 6.96s (± 0.07%) 6.95s (± 0.08%) ~ 6.95s 6.96s p=0.640 n=6
Bind Time 2.58s 2.59s (± 0.47%) ~ 2.58s 2.61s p=0.176 n=6
Check Time 49.70s (± 0.10%) 49.86s (± 0.11%) +0.16s (+ 0.32%) 49.81s 49.95s p=0.005 n=6
Emit Time 4.25s (± 0.19%) 4.25s (± 0.25%) ~ 4.24s 4.27s p=0.510 n=6
Total Time 63.49s (± 0.06%) 63.67s (± 0.11%) +0.18s (+ 0.28%) 63.60s 63.77s 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,221,231 1,221,427 +196 (+ 0.02%) ~ ~ p=0.001 n=6
Types 259,523 259,552 +29 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 2,413,286k (± 0.00%) 2,414,448k (± 0.00%) +1,162k (+ 0.05%) 2,414,337k 2,414,470k p=0.003 n=6
Parse Time 7.22s (± 0.25%) 7.21s (± 0.25%) ~ 7.19s 7.24s p=0.624 n=6
Bind Time 2.51s 2.53s +0.02s (+ 0.80%) ~ ~ p=0.001 n=6
Check Time 49.81s (± 0.09%) 50.08s (± 0.05%) +0.27s (+ 0.55%) 50.04s 50.12s p=0.005 n=6
Emit Time 4.29s (± 0.12%) 4.24s (± 0.53%) -0.04s (- 0.97%) 4.23s 4.29s p=0.023 n=6
Total Time 63.81s (± 0.08%) 64.05s (± 0.04%) +0.24s (+ 0.38%) 64.03s 64.09s p=0.005 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 256,768 256,845 +77 (+ 0.03%) ~ ~ p=0.001 n=6
Types 104,587 104,616 +29 (+ 0.03%) ~ ~ p=0.001 n=6
Memory used 425,968k 426,271k +303k (+ 0.07%) ~ ~ p=0.001 n=6
Parse Time 3.12s (± 0.33%) 3.12s (± 0.29%) ~ 3.11s 3.13s p=0.673 n=6
Bind Time 1.57s 1.57s ~ ~ ~ p=1.000 n=6
Check Time 17.91s (± 0.18%) 17.89s (± 0.13%) ~ 17.87s 17.92s p=0.191 n=6
Emit Time 1.37s 1.37s (± 0.30%) ~ 1.37s 1.38s p=0.405 n=6
Total Time 23.97s (± 0.16%) 23.95s (± 0.10%) ~ 23.93s 23.99s p=0.625 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 224,575 224,575 ~ ~ ~ p=1.000 n=6
Types 93,785 93,785 ~ ~ ~ p=1.000 n=6
Memory used 369,734k 369,760k +26k (+ 0.01%) ~ ~ p=0.001 n=6
Parse Time 2.81s (± 0.52%) 2.81s (± 0.29%) ~ 2.80s 2.82s p=0.508 n=6
Bind Time 1.42s (± 0.29%) 1.42s ~ ~ ~ p=0.405 n=6
Check Time 15.92s (± 0.08%) 16.04s (± 0.27%) +0.12s (+ 0.74%) 16.00s 16.12s p=0.005 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 20.15s (± 0.12%) 20.27s (± 0.17%) +0.12s (+ 0.61%) 20.25s 20.34s p=0.005 n=6
vscode - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,824,634 2,824,662 +28 (+ 0.00%) ~ ~ p=0.001 n=6
Types 958,192 958,235 +43 (+ 0.00%) ~ ~ p=0.001 n=6
Memory used 3,000,142k 3,000,070k -72k (- 0.00%) ~ ~ p=0.001 n=6
Parse Time 14.49s (± 0.12%) 14.48s (± 0.16%) ~ 14.46s 14.51s p=0.328 n=6
Bind Time 4.29s (± 0.13%) 4.28s (± 0.10%) -0.02s (- 0.39%) 4.27s 4.28s p=0.003 n=6
Check Time 75.50s (± 0.09%) 76.02s (± 0.14%) +0.52s (+ 0.68%) 75.87s 76.13s p=0.005 n=6
Emit Time 20.11s (± 0.10%) 20.91s (± 0.43%) 🔻+0.81s (+ 4.00%) 20.85s 21.09s p=0.005 n=6
Total Time 114.40s (± 0.05%) 115.69s (± 0.08%) +1.30s (+ 1.13%) 115.57s 115.79s p=0.005 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 265,866 265,866 ~ ~ ~ p=1.000 n=6
Types 108,401 108,401 ~ ~ ~ p=1.000 n=6
Memory used 410,531k 410,541k +10k (+ 0.00%) ~ ~ p=0.001 n=6
Parse Time 3.84s (± 0.35%) 3.84s (± 0.32%) ~ 3.82s 3.85s p=0.564 n=6
Bind Time 1.71s (± 0.30%) 1.72s +0.01s (+ 0.39%) ~ ~ p=0.025 n=6
Check Time 16.81s (± 0.06%) 16.84s (± 0.07%) +0.02s (+ 0.14%) 16.82s 16.85s p=0.014 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.37s (± 0.07%) 22.39s (± 0.07%) ~ 22.37s 22.41s p=0.062 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 524,639 524,639 ~ ~ ~ p=1.000 n=6
Types 178,906 178,906 ~ ~ ~ p=1.000 n=6
Memory used 462,635k 462,670k +35k (+ 0.01%) ~ ~ p=0.001 n=6
Parse Time 2.54s 2.54s (± 0.20%) ~ 2.54s 2.55s p=0.174 n=6
Bind Time 1.17s (± 0.44%) 1.17s (± 0.35%) ~ 1.16s 1.17s p=0.595 n=6
Check Time 15.33s (± 0.07%) 15.41s (± 0.09%) +0.08s (+ 0.51%) 15.39s 15.43s p=0.004 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 19.04s (± 0.04%) 19.11s (± 0.04%) +0.08s (+ 0.42%) 19.11s 19.13s p=0.004 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

tsserver

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.15.0, x64)
Req 1 - updateOpen 2,342ms (± 0.26%) 2,344ms (± 0.20%) ~ 2,336ms 2,349ms p=0.629 n=6
Req 2 - geterr 5,100ms (± 0.09%) 5,120ms (± 0.09%) +20ms (+ 0.39%) 5,114ms 5,127ms p=0.005 n=6
Req 3 - references 282ms (± 0.73%) 283ms (± 0.53%) ~ 280ms 284ms p=0.345 n=6
Req 4 - navto 226ms (± 0.98%) 226ms (± 0.72%) ~ 225ms 229ms p=1.000 n=6
Req 5 - completionInfo count 1,357 1,357 ~ ~ ~ p=1.000 n=6
Req 5 - completionInfo 89ms (± 6.28%) 91ms (± 4.86%) ~ 82ms 93ms p=0.149 n=6
CompilerTSServer - node (v18.15.0, x64)
Req 1 - updateOpen 3,028ms (± 0.43%) 3,035ms (± 0.28%) ~ 3,024ms 3,048ms p=0.378 n=6
Req 2 - geterr 4,786ms (± 9.50%) 4,625ms (± 0.17%) ~ 4,614ms 4,632ms p=0.128 n=6
Req 3 - references 388ms (±10.88%) 374ms (± 8.80%) ~ 359ms 441ms p=0.803 n=6
Req 4 - navto 308ms (±10.55%) 298ms (±10.34%) ~ 278ms 338ms p=1.000 n=6
Req 5 - completionInfo count 1,519 1,519 ~ ~ ~ p=1.000 n=6
Req 5 - completionInfo 111ms (±11.39%) 107ms (±11.12%) ~ 99ms 122ms p=0.640 n=6
xstate-main-1-tsserver - node (v18.15.0, x64)
Req 1 - updateOpen 5,319ms (± 0.09%) 5,317ms (± 0.13%) ~ 5,306ms 5,324ms p=0.809 n=6
Req 2 - geterr 1,140ms (± 0.15%) 1,138ms (± 0.12%) ~ 1,136ms 1,140ms p=0.191 n=6
Req 3 - references 84ms (± 0.62%) 88ms 🔻+4ms (+ 5.18%) ~ ~ p=0.002 n=6
Req 4 - navto 449ms (± 0.19%) 447ms (± 0.09%) -1ms (- 0.30%) 447ms 448ms p=0.007 n=6
Req 5 - completionInfo count 3,413 3,413 ~ ~ ~ p=1.000 n=6
Req 5 - completionInfo 821ms (± 0.10%) 836ms (± 0.09%) +15ms (+ 1.87%) 835ms 837ms p=0.004 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)
  • xstate-main-1-tsserver - 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 166.41ms (± 0.10%) 168.44ms (± 0.13%) +2.03ms (+ 1.22%) 167.49ms 173.47ms p=0.000 n=600
tsserver-startup - node (v18.15.0, x64)
Execution time 309.42ms (± 0.27%) 309.58ms (± 0.24%) +0.16ms (+ 0.05%) 303.31ms 315.62ms p=0.000 n=600
tsserverlibrary-startup - node (v18.15.0, x64)
Execution time 244.98ms (± 0.09%) 246.22ms (± 0.13%) +1.24ms (+ 0.51%) 245.31ms 253.09ms p=0.000 n=600
typescript-startup - node (v18.15.0, x64)
Execution time 245.85ms (± 0.12%) 246.13ms (± 0.08%) +0.29ms (+ 0.12%) 245.19ms 247.61ms 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

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

3 participants