镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Consider all union types matching discriminator for excess property checks - #51884

Merged
Wesley Wigham (weswigham) merged 4 commits into
microsoft:mainfrom
nebkat:fix-51873
Mar 20, 2023
Merged

Wesley Wigham (weswigham) merged 4 commits into
microsoft:mainfrom
nebkat:fix-51873

Conversation

@nebkat

Copy link
Copy Markdown
Contributor

Discriminating unions provide a means for type narrowing based on a discriminator property. The first property common to all union constituents is taken as the discriminator property.

If object literals provide a discriminator value, their expected shape gets narrowed to the corresponding union constituent. Excess properties from other constituents (or completely unrelated properties) raise an excess property check (EPC) error.

Previously this only worked if there was a single matching candidate constituent for the object literal being tested. If two or more types within the union matched the provided discriminator value, EPC accepted properties from the entire union - even though only a subset actually matched.

This PR improves on this behavior to correctly consider only the matching subset.

Fixes #51873

@typescript-bot TypeScript Bot (typescript-bot) added the For Uncommitted Bug PR for untriaged, rejected, closed or missing bug label Dec 14, 2022
@typescript-bot

Copy link
Copy Markdown
Contributor

The TypeScript team hasn't accepted the linked issue #51873. If you can get it accepted, this PR will have a better chance of being reviewed.

@nebkat

Copy link
Copy Markdown
Contributor Author

@microsoft-github-policy-service agree

@jakebailey

Copy link
Copy Markdown
Member

@typescript-bot

TypeScript Bot (typescript-bot) commented Dec 14, 2022 •

Copy link
Copy Markdown
Contributor

Heya Jake Bailey (@jakebailey), I've started to run the diff-based top-repos suite (tsserver) on this PR at ca945a2. You can monitor the build here.

Update: The results are in!

@typescript-bot

TypeScript Bot (typescript-bot) commented Dec 14, 2022 •

Copy link
Copy Markdown
Contributor

Heya Jake Bailey (@jakebailey), I've started to run the perf test suite on this PR at ca945a2. You can monitor the build here.

Update: The results are in!

@typescript-bot

TypeScript Bot (typescript-bot) commented Dec 14, 2022 •

Copy link
Copy Markdown
Contributor

Heya Jake Bailey (@jakebailey), I've started to run the extended test suite on this PR at ca945a2. You can monitor the build here.

@typescript-bot

TypeScript Bot (typescript-bot) commented Dec 14, 2022 •

Copy link
Copy Markdown
Contributor

Heya Jake Bailey (@jakebailey), I've started to run the diff-based user code test suite on this PR at ca945a2. You can monitor the build here.

Update: The results are in!

@typescript-bot

TypeScript Bot (typescript-bot) commented Dec 14, 2022 •

Copy link
Copy Markdown
Contributor

Heya Jake Bailey (@jakebailey), I've started to run the diff-based top-repos suite on this PR at ca945a2. You can monitor the build here.

Update: The results are in!

@typescript-bot

TypeScript Bot (typescript-bot) commented Dec 14, 2022 •

Copy link
Copy Markdown
Contributor

Heya Jake Bailey (@jakebailey), I've started to run the diff-based user code test suite (tsserver) on this PR at ca945a2. You can monitor the build here.

Update: The results are in!

@typescript-bot

TypeScript Bot (typescript-bot) commented Dec 14, 2022 •

Copy link
Copy Markdown
Contributor

Heya Jake Bailey (@jakebailey), I've started to run the tarball bundle task on this PR at ca945a2. You can monitor the build here.

@typescript-bot

TypeScript Bot (typescript-bot) commented Dec 14, 2022 •

Copy link
Copy Markdown
Contributor

Heya Jake Bailey (@jakebailey), I've started to run the parallelized Definitely Typed test suite on this PR at ca945a2. You can monitor the build here.

@typescript-bot

TypeScript Bot (typescript-bot) commented Dec 14, 2022 •

Copy link
Copy Markdown
Contributor

Hey Jake Bailey (@jakebailey), I've packed this into an installable tgz. You can install it for testing by referencing it in your package.json like so:

{
    "devDependencies": {
        "typescript": "https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/_apis/build/builds/140430/artifacts?artifactName=tgz&fileId=88A1075270F74A2CB919F42AED50F0A06A696993987A13B5FFBE18D175AE7B4602&fileName=/typescript-5.0.0-insiders.20221214.tgz"
    }
}

and then running npm install.


There is also a playground for this build and an npm module you can use via "typescript": "npm:@typescript-deploys/pr-build@5.0.0-pr-51884-12".;

@typescript-bot

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey) Here are the results of running the user test suite comparing main and refs/pull/51884/merge:

Everything looks good!

1 similar comment
@typescript-bot

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey) Here are the results of running the user test suite comparing main and refs/pull/51884/merge:

Everything looks good!

@typescript-bot

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey)
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - main..51884
Metric main 51884 Delta Best Worst
Angular - node (v18.10.0, x64)
Memory used 364,558k (± 0.02%) 364,644k (± 0.01%) +86k (+ 0.02%) 364,577k 364,731k
Parse Time 1.57s (± 1.10%) 1.57s (± 1.10%) -0.01s (- 0.44%) 1.54s 1.62s
Bind Time 0.55s (± 1.08%) 0.55s (± 0.89%) -0.00s (- 0.18%) 0.54s 0.56s
Check Time 3.89s (± 0.78%) 3.91s (± 1.03%) +0.02s (+ 0.44%) 3.84s 4.00s
Emit Time 3.93s (± 0.68%) 3.92s (± 0.92%) -0.01s (- 0.23%) 3.87s 4.03s
Total Time 9.96s (± 0.50%) 9.95s (± 0.77%) -0.00s (- 0.03%) 9.82s 10.10s
Compiler-Unions - node (v18.10.0, x64)
Memory used 199,638k (± 1.04%) 197,357k (± 0.65%) -2,281k (- 1.14%) 196,599k 202,516k
Parse Time 0.62s (± 0.89%) 0.62s (± 1.08%) -0.01s (- 0.80%) 0.60s 0.63s
Bind Time 0.36s (± 2.47%) 0.35s (± 0.96%) -0.00s (- 1.12%) 0.35s 0.36s
Check Time 4.96s (± 0.77%) 4.95s (± 0.81%) -0.01s (- 0.16%) 4.82s 5.02s
Emit Time 1.46s (± 1.21%) 1.46s (± 0.79%) +0.00s (+ 0.21%) 1.43s 1.48s
Total Time 7.39s (± 0.67%) 7.38s (± 0.61%) -0.01s (- 0.15%) 7.25s 7.45s
Monaco - node (v18.10.0, x64)
Memory used 347,257k (± 0.01%) 347,332k (± 0.01%) +76k (+ 0.02%) 347,192k 347,393k
Parse Time 1.18s (± 0.90%) 1.17s (± 1.00%) -0.00s (- 0.43%) 1.15s 1.20s
Bind Time 0.50s (± 0.72%) 0.51s (± 1.17%) +0.00s (+ 0.40%) 0.50s 0.52s
Check Time 3.66s (± 0.78%) 3.64s (± 0.63%) -0.02s (- 0.46%) 3.61s 3.71s
Emit Time 2.05s (± 1.11%) 2.04s (± 0.94%) -0.01s (- 0.24%) 2.01s 2.11s
Total Time 7.40s (± 0.73%) 7.37s (± 0.53%) -0.03s (- 0.41%) 7.28s 7.45s
TFS - node (v18.10.0, x64)
Memory used 305,916k (± 0.24%) 306,218k (± 0.24%) +302k (+ 0.10%) 304,959k 307,108k
Parse Time 0.94s (± 0.77%) 0.95s (± 1.74%) +0.01s (+ 1.17%) 0.93s 1.00s
Bind Time 0.57s (± 1.55%) 0.53s (± 7.83%) 🟩-0.05s (- 8.01%) 0.46s 0.58s
Check Time 3.39s (± 0.51%) 3.39s (± 0.85%) -0.00s (- 0.00%) 3.33s 3.45s
Emit Time 2.04s (± 0.75%) 2.02s (± 1.41%) -0.01s (- 0.59%) 1.97s 2.11s
Total Time 6.94s (± 0.49%) 6.89s (± 0.92%) -0.05s (- 0.75%) 6.72s 7.02s
material-ui - node (v18.10.0, x64)
Memory used 451,690k (± 0.01%) 451,755k (± 0.01%) +65k (+ 0.01%) 451,650k 451,916k
Parse Time 1.35s (± 0.86%) 1.36s (± 0.62%) +0.01s (+ 0.97%) 1.34s 1.37s
Bind Time 0.42s (± 3.39%) 0.41s (± 0.73%) 🟩-0.01s (- 3.09%) 0.40s 0.41s
Check Time 10.25s (± 1.05%) 10.11s (± 0.70%) -0.13s (- 1.27%) 9.99s 10.29s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 12.01s (± 0.89%) 11.89s (± 0.63%) -0.13s (- 1.05%) 11.74s 12.06s
xstate - node (v18.10.0, x64)
Memory used 553,591k (± 0.01%) 553,542k (± 0.01%) -49k (- 0.01%) 553,436k 553,704k
Parse Time 1.91s (± 0.52%) 1.89s (± 0.43%) -0.01s (- 0.73%) 1.88s 1.91s
Bind Time 0.72s (± 3.35%) 0.71s (± 3.83%) -0.01s (- 1.40%) 0.67s 0.79s
Check Time 1.02s (± 0.93%) 1.01s (± 1.05%) -0.01s (- 0.98%) 1.00s 1.04s
Emit Time 0.05s (± 0.00%) 0.05s (± 0.00%) 0.00s ( 0.00%) 0.05s 0.05s
Total Time 3.71s (± 0.88%) 3.67s (± 0.75%) -0.03s (- 0.86%) 3.62s 3.75s
Angular - node (v16.17.1, x64)
Memory used 363,903k (± 0.01%) 363,928k (± 0.02%) +25k (+ 0.01%) 363,802k 364,111k
Parse Time 1.93s (± 0.65%) 1.91s (± 0.97%) -0.02s (- 1.09%) 1.88s 1.95s
Bind Time 0.66s (± 0.75%) 0.66s (± 0.76%) -0.01s (- 1.50%) 0.65s 0.67s
Check Time 5.01s (± 0.41%) 5.01s (± 0.70%) -0.01s (- 0.12%) 4.95s 5.07s
Emit Time 4.68s (± 0.63%) 4.68s (± 0.80%) +0.00s (+ 0.02%) 4.61s 4.76s
Total Time 12.29s (± 0.30%) 12.26s (± 0.58%) -0.03s (- 0.24%) 12.11s 12.42s
Compiler-Unions - node (v16.17.1, x64)
Memory used 200,204k (± 0.63%) 199,558k (± 0.58%) -647k (- 0.32%) 198,437k 202,100k
Parse Time 0.80s (± 0.62%) 0.80s (± 0.73%) +0.00s (+ 0.13%) 0.79s 0.81s
Bind Time 0.44s (± 0.77%) 0.44s (± 1.11%) +0.00s (+ 0.23%) 0.43s 0.45s
Check Time 5.93s (± 0.62%) 5.87s (± 0.54%) -0.06s (- 0.96%) 5.80s 5.94s
Emit Time 1.80s (± 0.91%) 1.81s (± 0.96%) +0.01s (+ 0.39%) 1.77s 1.84s
Total Time 8.97s (± 0.54%) 8.92s (± 0.53%) -0.05s (- 0.58%) 8.83s 9.04s
Monaco - node (v16.17.1, x64)
Memory used 346,567k (± 0.01%) 346,587k (± 0.01%) +20k (+ 0.01%) 346,511k 346,672k
Parse Time 1.43s (± 0.56%) 1.44s (± 0.58%) +0.01s (+ 0.49%) 1.42s 1.45s
Bind Time 0.61s (± 0.91%) 0.61s (± 0.56%) +0.01s (+ 0.82%) 0.61s 0.62s
Check Time 4.62s (± 0.33%) 4.62s (± 0.45%) -0.00s (- 0.02%) 4.56s 4.65s
Emit Time 2.48s (± 0.88%) 2.48s (± 0.78%) -0.00s (- 0.12%) 2.43s 2.52s
Total Time 9.15s (± 0.33%) 9.15s (± 0.32%) +0.00s (+ 0.05%) 9.06s 9.20s
TFS - node (v16.17.1, x64)
Memory used 304,219k (± 0.02%) 304,242k (± 0.02%) +23k (+ 0.01%) 304,076k 304,308k
Parse Time 1.19s (± 1.26%) 1.18s (± 1.73%) -0.01s (- 0.50%) 1.16s 1.25s
Bind Time 0.58s (± 1.34%) 0.57s (± 0.86%) -0.00s (- 0.86%) 0.57s 0.59s
Check Time 4.33s (± 0.27%) 4.32s (± 0.60%) -0.02s (- 0.42%) 4.24s 4.36s
Emit Time 2.49s (± 1.06%) 2.50s (± 1.17%) +0.01s (+ 0.28%) 2.44s 2.58s
Total Time 8.60s (± 0.52%) 8.57s (± 0.71%) -0.02s (- 0.27%) 8.42s 8.72s
material-ui - node (v16.17.1, x64)
Memory used 451,078k (± 0.01%) 451,020k (± 0.01%) -58k (- 0.01%) 450,962k 451,105k
Parse Time 1.68s (± 0.79%) 1.66s (± 0.52%) -0.01s (- 0.89%) 1.64s 1.68s
Bind Time 0.50s (± 1.12%) 0.50s (± 1.23%) +0.00s (+ 0.60%) 0.49s 0.51s
Check Time 11.73s (± 0.79%) 11.58s (± 0.49%) -0.15s (- 1.27%) 11.47s 11.73s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 13.91s (± 0.70%) 13.74s (± 0.41%) -0.16s (- 1.17%) 13.64s 13.88s
xstate - node (v16.17.1, x64)
Memory used 551,130k (± 0.01%) 551,105k (± 0.01%) -25k (- 0.00%) 551,040k 551,193k
Parse Time 2.32s (± 0.56%) 2.29s (± 0.42%) -0.03s (- 1.25%) 2.27s 2.31s
Bind Time 0.82s (± 1.50%) 0.84s (± 1.91%) +0.02s (+ 2.31%) 0.81s 0.87s
Check Time 1.35s (± 0.37%) 1.33s (± 0.56%) -0.02s (- 1.19%) 1.32s 1.35s
Emit Time 0.06s (± 0.00%) 0.06s (± 0.00%) 0.00s ( 0.00%) 0.06s 0.06s
Total Time 4.56s (± 0.46%) 4.53s (± 0.42%) -0.02s (- 0.46%) 4.50s 4.59s
Angular - node (v14.15.1, x64)
Memory used 357,745k (± 0.01%) 357,648k (± 0.01%) -96k (- 0.03%) 357,579k 357,727k
Parse Time 2.05s (± 0.73%) 2.06s (± 0.72%) +0.01s (+ 0.59%) 2.04s 2.11s
Bind Time 0.71s (± 0.56%) 0.71s (± 0.83%) +0.00s (+ 0.42%) 0.70s 0.73s
Check Time 5.33s (± 0.79%) 5.34s (± 0.29%) +0.01s (+ 0.15%) 5.30s 5.38s
Emit Time 4.82s (± 0.73%) 4.78s (± 0.56%) -0.03s (- 0.64%) 4.74s 4.86s
Total Time 12.90s (± 0.62%) 12.90s (± 0.26%) -0.01s (- 0.05%) 12.83s 12.98s
Compiler-Unions - node (v14.15.1, x64)
Memory used 195,900k (± 0.59%) 196,483k (± 0.38%) +583k (+ 0.30%) 193,553k 196,940k
Parse Time 0.90s (± 0.68%) 0.90s (± 0.83%) -0.00s (- 0.11%) 0.89s 0.92s
Bind Time 0.47s (± 0.77%) 0.47s (± 0.72%) -0.00s (- 0.21%) 0.47s 0.48s
Check Time 6.14s (± 0.43%) 6.15s (± 0.52%) +0.00s (+ 0.08%) 6.08s 6.25s
Emit Time 1.91s (± 1.22%) 1.92s (± 1.77%) +0.01s (+ 0.42%) 1.89s 2.05s
Total Time 9.43s (± 0.50%) 9.44s (± 0.51%) +0.01s (+ 0.08%) 9.36s 9.56s
Monaco - node (v14.15.1, x64)
Memory used 341,563k (± 0.01%) 341,567k (± 0.01%) +5k (+ 0.00%) 341,514k 341,622k
Parse Time 1.59s (± 0.50%) 1.58s (± 0.52%) -0.01s (- 0.31%) 1.57s 1.60s
Bind Time 0.65s (± 0.89%) 0.65s (± 0.90%) -0.00s (- 0.46%) 0.64s 0.66s
Check Time 4.92s (± 0.48%) 4.92s (± 0.49%) -0.00s (- 0.04%) 4.87s 4.99s
Emit Time 2.59s (± 1.18%) 2.57s (± 1.00%) -0.02s (- 0.85%) 2.53s 2.64s
Total Time 9.75s (± 0.40%) 9.72s (± 0.39%) -0.03s (- 0.34%) 9.66s 9.80s
TFS - node (v14.15.1, x64)
Memory used 301,315k (± 0.01%) 301,362k (± 0.01%) +47k (+ 0.02%) 301,323k 301,417k
Parse Time 1.33s (± 0.87%) 1.32s (± 0.73%) -0.01s (- 0.83%) 1.30s 1.35s
Bind Time 0.61s (± 0.56%) 0.60s (± 0.74%) -0.01s (- 0.82%) 0.59s 0.61s
Check Time 4.61s (± 0.32%) 4.59s (± 0.35%) -0.02s (- 0.50%) 4.56s 4.63s
Emit Time 2.79s (± 0.69%) 2.78s (± 1.18%) -0.01s (- 0.43%) 2.71s 2.85s
Total Time 9.34s (± 0.30%) 9.29s (± 0.41%) -0.05s (- 0.51%) 9.19s 9.36s
material-ui - node (v14.15.1, x64)
Memory used 446,781k (± 0.00%) 446,824k (± 0.01%) +43k (+ 0.01%) 446,749k 447,020k
Parse Time 1.90s (± 0.61%) 1.88s (± 0.48%) -0.02s (- 1.11%) 1.87s 1.91s
Bind Time 0.54s (± 0.74%) 0.54s (± 0.89%) -0.00s (- 0.74%) 0.53s 0.55s
Check Time 12.00s (± 0.66%) 12.04s (± 0.61%) +0.03s (+ 0.28%) 11.85s 12.18s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 14.44s (± 0.56%) 14.45s (± 0.54%) +0.01s (+ 0.05%) 14.26s 14.61s
xstate - node (v14.15.1, x64)
Memory used 539,737k (± 0.01%) 539,712k (± 0.01%) -25k (- 0.00%) 539,559k 539,880k
Parse Time 2.65s (± 0.93%) 2.62s (± 0.87%) -0.02s (- 0.79%) 2.59s 2.68s
Bind Time 0.82s (± 0.49%) 0.81s (± 1.00%) -0.01s (- 0.97%) 0.80s 0.83s
Check Time 1.44s (± 0.94%) 1.43s (± 0.31%) -0.01s (- 0.69%) 1.42s 1.44s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 4.98s (± 0.65%) 4.95s (± 0.55%) -0.04s (- 0.72%) 4.90s 5.02s
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-131-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 51884 10
Baseline main 10

TSServer

Comparison Report - main..51884
Metric main 51884 Delta Best Worst
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 1,067ms (± 0.58%) 1,065ms (± 0.70%) -2ms (- 0.20%) 1,051ms 1,081ms
Req 2 - geterr 2,563ms (± 1.01%) 2,547ms (± 0.59%) -16ms (- 0.62%) 2,513ms 2,575ms
Req 3 - references 165ms (± 1.03%) 164ms (± 0.78%) -1ms (- 0.48%) 161ms 168ms
Req 4 - navto 142ms (± 0.73%) 142ms (± 0.93%) -0ms (- 0.28%) 139ms 145ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 56ms (± 7.59%) 53ms (± 7.58%) 🟩-3ms (- 4.48%) 48ms 63ms
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 1,140ms (± 0.29%) 1,139ms (± 0.74%) -2ms (- 0.15%) 1,123ms 1,158ms
Req 2 - geterr 1,574ms (± 0.55%) 1,570ms (± 0.99%) -5ms (- 0.29%) 1,546ms 1,612ms
Req 3 - references 172ms (± 0.91%) 172ms (± 0.65%) -0ms (- 0.06%) 170ms 175ms
Req 4 - navto 153ms (± 0.89%) 153ms (± 0.93%) -0ms (- 0.13%) 149ms 155ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 53ms (± 1.14%) 54ms (± 0.68%) +1ms (+ 2.10%) 53ms 54ms
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 1,537ms (± 0.69%) 1,546ms (± 0.96%) +9ms (+ 0.57%) 1,510ms 1,572ms
Req 2 - geterr 543ms (± 1.34%) 545ms (± 1.07%) +1ms (+ 0.26%) 533ms 559ms
Req 3 - references 58ms (± 3.72%) 58ms (± 2.09%) -0ms (- 0.35%) 56ms 61ms
Req 4 - navto 194ms (± 0.78%) 195ms (± 0.60%) +1ms (+ 0.41%) 192ms 197ms
Req 5 - completionInfo count 3,154 (± 0.00%) 3,154 (± 0.00%) 0 ( 0.00%) 3,154 3,154
Req 5 - completionInfo 216ms (± 1.25%) 215ms (± 1.27%) -1ms (- 0.51%) 211ms 222ms
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 1,329ms (± 0.69%) 1,334ms (± 0.50%) +5ms (+ 0.38%) 1,311ms 1,344ms
Req 2 - geterr 3,167ms (± 1.01%) 3,178ms (± 0.92%) +12ms (+ 0.37%) 3,107ms 3,228ms
Req 3 - references 194ms (± 0.68%) 193ms (± 0.69%) -0ms (- 0.21%) 190ms 196ms
Req 4 - navto 155ms (± 1.15%) 156ms (± 1.35%) +1ms (+ 0.52%) 150ms 159ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 58ms (± 2.04%) 58ms (± 1.31%) -1ms (- 1.03%) 56ms 59ms
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 1,414ms (± 0.80%) 1,430ms (± 0.81%) +16ms (+ 1.12%) 1,396ms 1,446ms
Req 2 - geterr 2,072ms (± 0.53%) 2,076ms (± 0.55%) +5ms (+ 0.22%) 2,045ms 2,100ms
Req 3 - references 201ms (± 0.62%) 203ms (± 0.62%) +2ms (+ 0.80%) 201ms 207ms
Req 4 - navto 167ms (± 0.87%) 168ms (± 0.69%) +1ms (+ 0.36%) 165ms 171ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 57ms (± 1.57%) 57ms (± 1.36%) +0ms (+ 0.53%) 55ms 59ms
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 1,865ms (± 0.63%) 1,860ms (± 0.43%) -5ms (- 0.28%) 1,845ms 1,880ms
Req 2 - geterr 691ms (± 0.45%) 689ms (± 0.43%) -3ms (- 0.39%) 682ms 694ms
Req 3 - references 65ms (± 1.08%) 66ms (± 1.43%) +1ms (+ 1.23%) 64ms 68ms
Req 4 - navto 196ms (± 0.85%) 196ms (± 0.86%) -1ms (- 0.31%) 191ms 199ms
Req 5 - completionInfo count 3,154 (± 0.00%) 3,154 (± 0.00%) 0 ( 0.00%) 3,154 3,154
Req 5 - completionInfo 255ms (± 0.42%) 256ms (± 1.05%) +2ms (+ 0.71%) 250ms 265ms
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,480ms (± 0.41%) 1,479ms (± 0.66%) -1ms (- 0.09%) 1,460ms 1,498ms
Req 2 - geterr 3,367ms (± 0.93%) 3,369ms (± 0.88%) +3ms (+ 0.07%) 3,315ms 3,415ms
Req 3 - references 209ms (± 0.70%) 208ms (± 0.49%) -1ms (- 0.67%) 205ms 210ms
Req 4 - navto 170ms (± 0.66%) 169ms (± 1.14%) -0ms (- 0.18%) 164ms 174ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 59ms (± 5.40%) 58ms (± 1.40%) -1ms (- 1.52%) 57ms 61ms
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,577ms (± 0.44%) 1,583ms (± 0.62%) +6ms (+ 0.37%) 1,566ms 1,610ms
Req 2 - geterr 2,219ms (± 0.43%) 2,213ms (± 0.55%) -6ms (- 0.25%) 2,191ms 2,247ms
Req 3 - references 221ms (± 0.86%) 221ms (± 1.17%) -1ms (- 0.32%) 215ms 228ms
Req 4 - navto 180ms (± 0.53%) 177ms (± 0.50%) -2ms (- 1.28%) 175ms 179ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 59ms (± 1.68%) 60ms (± 2.92%) +2ms (+ 2.55%) 57ms 64ms
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,986ms (± 0.44%) 2,001ms (± 0.63%) +15ms (+ 0.74%) 1,980ms 2,039ms
Req 2 - geterr 738ms (± 0.56%) 742ms (± 0.49%) +4ms (+ 0.58%) 735ms 749ms
Req 3 - references 73ms (± 1.24%) 71ms (± 0.99%) -2ms (- 2.47%) 70ms 73ms
Req 4 - navto 215ms (± 1.35%) 219ms (± 0.87%) +4ms (+ 1.95%) 216ms 224ms
Req 5 - completionInfo count 3,154 (± 0.00%) 3,154 (± 0.00%) 0 ( 0.00%) 3,154 3,154
Req 5 - completionInfo 281ms (± 1.50%) 276ms (± 0.60%) -6ms (- 1.96%) 273ms 281ms
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-131-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 51884 10
Baseline main 10

Startup

Comparison Report - main..51884
Metric main 51884 Delta Best Worst
tsc-startup - node (v16.17.1, x64)
Execution time 118.57ms (± 0.40%) 119.10ms (± 0.56%) +0.53ms (+ 0.45%) 116.00ms 125.12ms
tsserver-startup - node (v16.17.1, x64)
Execution time 198.29ms (± 0.30%) 197.66ms (± 0.27%) -0.62ms (- 0.31%) 194.79ms 203.83ms
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 192.53ms (± 0.29%) 192.58ms (± 0.31%) +0.05ms (+ 0.02%) 189.57ms 200.06ms
typescript-startup - node (v16.17.1, x64)
Execution time 178.59ms (± 0.37%) 178.09ms (± 0.32%) -0.50ms (- 0.28%) 175.50ms 185.25ms
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-131-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v16.17.1, x64)
Scenarios
  • tsc-startup - node (v16.17.1, x64)
  • tsserver-startup - node (v16.17.1, x64)
  • tsserverlibrary-startup - node (v16.17.1, x64)
  • typescript-startup - node (v16.17.1, x64)
Benchmark Name Iterations
Current 51884 10
Baseline main 10

Developer Information:

Download Benchmark

@typescript-bot

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey) Here are the results of running the top-repos suite comparing main and refs/pull/51884/merge:

Everything looks good!

@typescript-bot

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey) Here are the results of running the top-repos suite comparing main and refs/pull/51884/merge:

Something interesting changed - please have a look.

Details

felixrieseberg/windows95

⚠️ Note that built also had errors ⚠️
Req #334 - references
    at formatMessage2 (/typescript-main/built/local/tsserver.js:159171:21)
    at IOSession.writeMessage (/typescript-main/built/local/tsserver.js:160178:21)
    at IOSession.send (/typescript-main/built/local/tsserver.js:160175:10)
    at IOSession.doOutput (/typescript-main/built/local/tsserver.js:160222:10)
    at IOSession.onMessage (/typescript-main/built/local/tsserver.js:161833:14)
    at Interface.<anonymous> (/typescript-main/built/local/tsserver.js:163219:14)
Req #334 - references
    at formatMessage2 (/typescript-51884/built/local/tsserver.js:159164:21)
    at IOSession.writeMessage (/typescript-51884/built/local/tsserver.js:160171:21)
    at IOSession.send (/typescript-51884/built/local/tsserver.js:160168:10)
    at IOSession.doOutput (/typescript-51884/built/local/tsserver.js:160215:10)
    at IOSession.onMessage (/typescript-51884/built/local/tsserver.js:161826:14)
    at Interface.<anonymous> (/typescript-51884/built/local/tsserver.js:163212:14)

That is a filtered view of the text. To see the raw error text, go to RepoResults4/felixrieseberg.windows95.rawError.txt in the artifact folder

Last few requests

{"seq":331,"type":"request","command":"definitionAndBoundSpan","arguments":{"file":"@PROJECT_ROOT@/src/renderer/lib/_libwabt.js","line":13,"offset":38065}}
{"seq":332,"type":"request","command":"completionInfo","arguments":{"file":"@PROJECT_ROOT@/src/renderer/lib/_libwabt.js","line":13,"offset":38126,"includeExternalModuleExports":false,"includeInsertTextCompletions":true,"triggerKind":1}}
{"seq":333,"type":"request","command":"completionEntryDetails","arguments":{"file":"@PROJECT_ROOT@/src/renderer/lib/_libwabt.js","line":13,"offset":38126,"entryNames":["_"]}}
{"seq":334,"type":"request","command":"references","arguments":{"file":"@PROJECT_ROOT@/src/renderer/lib/_libwabt.js","line":13,"offset":39064}}

Repro Steps

  1. git clone https://github.com/felixrieseberg/windows95 --recurse-submodules
  2. In dir windows95, run git reset --hard 17a81393467e2668eb2eea291ab4b6a749756dad
  3. Back in the initial folder, download RepoResults4/felixrieseberg.windows95.replay.txt from the artifact folder
  4. npm install --no-save @typescript/server-replay
  5. npx tsreplay ./windows95 ./felixrieseberg.windows95.replay.txt path/to/tsserver.js
  6. npx tsreplay --help to learn about helpful switches for debugging, logging, etc

palantir/blueprint

⚠️ Note that built also had errors ⚠️
Req #12864 - references
    at formatMessage2 (/typescript-main/built/local/tsserver.js:159171:21)
    at IOSession.writeMessage (/typescript-main/built/local/tsserver.js:160178:21)
    at IOSession.send (/typescript-main/built/local/tsserver.js:160175:10)
    at IOSession.doOutput (/typescript-main/built/local/tsserver.js:160222:10)
    at IOSession.onMessage (/typescript-main/built/local/tsserver.js:161833:14)
    at Interface.<anonymous> (/typescript-main/built/local/tsserver.js:163219:14)
Req #12864 - references
    at formatMessage2 (/typescript-51884/built/local/tsserver.js:159164:21)
    at IOSession.writeMessage (/typescript-51884/built/local/tsserver.js:160171:21)
    at IOSession.send (/typescript-51884/built/local/tsserver.js:160168:10)
    at IOSession.doOutput (/typescript-51884/built/local/tsserver.js:160215:10)
    at IOSession.onMessage (/typescript-51884/built/local/tsserver.js:161826:14)
    at Interface.<anonymous> (/typescript-51884/built/local/tsserver.js:163212:14)

That is a filtered view of the text. To see the raw error text, go to RepoResults4/palantir.blueprint.rawError.txt in the artifact folder

Last few requests

{"seq":12861,"type":"request","command":"definitionAndBoundSpan","arguments":{"file":"@PROJECT_ROOT@/site/docs/versions/1/docs-app.js","line":1,"offset":436816}}
{"seq":12862,"type":"request","command":"completionInfo","arguments":{"file":"@PROJECT_ROOT@/site/docs/versions/1/docs-app.js","line":1,"offset":437059,"includeExternalModuleExports":false,"includeInsertTextCompletions":true,"triggerKind":2,"triggerCharacter":"."}}
{"seq":12863,"type":"request","command":"references","arguments":{"file":"@PROJECT_ROOT@/site/docs/versions/1/docs-app.js","line":1,"offset":438662}}
{"seq":12864,"type":"request","command":"references","arguments":{"file":"@PROJECT_ROOT@/site/docs/versions/1/docs-app.js","line":1,"offset":438837}}

Repro Steps

  1. git clone https://github.com/palantir/blueprint --recurse-submodules
  2. In dir blueprint, run git reset --hard b6c1518ea2f524accfba8045ce6f22cac7c5b56e
  3. In dir blueprint, run yarn install --ignore-engines --ignore-scripts --silent
  4. Back in the initial folder, download RepoResults4/palantir.blueprint.replay.txt from the artifact folder
  5. npm install --no-save @typescript/server-replay
  6. npx tsreplay ./blueprint ./palantir.blueprint.replay.txt path/to/tsserver.js
  7. npx tsreplay --help to learn about helpful switches for debugging, logging, etc

vercel/hyper

⚠️ Note that built also had errors ⚠️
Req #4776 - references
    at formatMessage2 (/typescript-main/built/local/tsserver.js:159171:21)
    at IOSession.writeMessage (/typescript-main/built/local/tsserver.js:160178:21)
    at IOSession.send (/typescript-main/built/local/tsserver.js:160175:10)
    at IOSession.doOutput (/typescript-main/built/local/tsserver.js:160222:10)
    at IOSession.onMessage (/typescript-main/built/local/tsserver.js:161833:14)
    at Interface.<anonymous> (/typescript-main/built/local/tsserver.js:163219:14)
Req #4776 - references
    at formatMessage2 (/typescript-51884/built/local/tsserver.js:159164:21)
    at IOSession.writeMessage (/typescript-51884/built/local/tsserver.js:160171:21)
    at IOSession.send (/typescript-51884/built/local/tsserver.js:160168:10)
    at IOSession.doOutput (/typescript-51884/built/local/tsserver.js:160215:10)
    at IOSession.onMessage (/typescript-51884/built/local/tsserver.js:161826:14)
    at Interface.<anonymous> (/typescript-51884/built/local/tsserver.js:163212:14)

That is a filtered view of the text. To see the raw error text, go to RepoResults2/vercel.hyper.rawError.txt in the artifact folder

Last few requests

{"seq":4773,"type":"request","command":"definitionAndBoundSpan","arguments":{"file":"@PROJECT_ROOT@/bin/yarn-standalone.js","line":16440,"offset":8}}
{"seq":4774,"type":"request","command":"completionInfo","arguments":{"file":"@PROJECT_ROOT@/bin/yarn-standalone.js","line":16441,"offset":8,"includeExternalModuleExports":false,"includeInsertTextCompletions":true,"triggerKind":1}}
{"seq":4775,"type":"request","command":"completionEntryDetails","arguments":{"file":"@PROJECT_ROOT@/bin/yarn-standalone.js","line":16441,"offset":8,"entryNames":["@abstract"]}}
{"seq":4776,"type":"request","command":"references","arguments":{"file":"@PROJECT_ROOT@/bin/yarn-standalone.js","line":16461,"offset":30}}

Repro Steps

  1. git clone https://github.com/vercel/hyper --recurse-submodules
  2. In dir hyper, run git reset --hard 6afd137455a8a466ec0d13283aa864ab375b9620
  3. Install packages (exact steps are below, but it might be easier to follow the repo readme)
    1. In dir hyper/app, run yarn install --ignore-engines --ignore-scripts --silent
    2. In dir hyper, run yarn install --ignore-engines --ignore-scripts --silent
  4. Back in the initial folder, download RepoResults2/vercel.hyper.replay.txt from the artifact folder
  5. npm install --no-save @typescript/server-replay
  6. npx tsreplay ./hyper ./vercel.hyper.replay.txt path/to/tsserver.js
  7. npx tsreplay --help to learn about helpful switches for debugging, logging, etc

@weswigham Wesley Wigham (weswigham) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think this approach is pretty reasonable, and, moreover, removing the isTypeIdenticalTo check is very performance positive. I need to run DT on this, but we should take it provided there's no unforseen breaks.

@weswigham

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) run dt

@typescript-bot

TypeScript Bot (typescript-bot) commented Mar 15, 2023 •

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the parallelized Definitely Typed test suite on this PR at ca945a2. You can monitor the build here.

Update: The results are in!

Update: The results are in!

@weswigham

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) perf test this

@typescript-bot

TypeScript Bot (typescript-bot) commented Mar 15, 2023 •

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the perf test suite on this PR at ca945a2. You can monitor the build here.

Update: The results are in!

@typescript-bot

Copy link
Copy Markdown
Contributor

Wesley Wigham (@weswigham)
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - main..51884
Metric main 51884 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 362,134k (± 0.01%) 362,166k (± 0.01%) ~ 362,141k 362,197k p=0.230 n=6
Parse Time 3.36s (± 0.41%) 3.37s (± 0.31%) ~ 3.36s 3.39s p=0.094 n=6
Bind Time 1.12s (± 1.04%) 1.11s (± 0.46%) ~ 1.11s 1.12s p=0.351 n=6
Check Time 8.67s (± 0.35%) 8.69s (± 0.57%) ~ 8.64s 8.78s p=0.805 n=6
Emit Time 7.47s (± 0.43%) 7.44s (± 0.37%) ~ 7.40s 7.47s p=0.295 n=6
Total Time 20.62s (± 0.19%) 20.62s (± 0.30%) ~ 20.51s 20.70s p=0.747 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 192,165k (± 1.24%) 192,712k (± 1.52%) ~ 190,791k 196,596k p=0.298 n=6
Parse Time 1.49s (± 1.56%) 1.50s (± 0.91%) ~ 1.48s 1.51s p=0.933 n=6
Bind Time 0.77s (± 0.53%) 0.77s (± 0.53%) ~ 0.77s 0.78s p=0.218 n=6
Check Time 9.41s (± 0.42%) 9.34s (± 0.96%) ~ 9.25s 9.50s p=0.128 n=6
Emit Time 2.73s (± 0.60%) 2.73s (± 1.15%) ~ 2.69s 2.77s p=0.629 n=6
Total Time 14.39s (± 0.22%) 14.34s (± 0.60%) ~ 14.24s 14.46s p=0.294 n=6
Monaco - node (v18.10.0, x64)
Memory used 347,458k (± 0.01%) 347,503k (± 0.01%) ~ 347,449k 347,576k p=0.128 n=6
Parse Time 2.57s (± 1.06%) 2.58s (± 1.11%) ~ 2.54s 2.62s p=0.329 n=6
Bind Time 1.01s (± 0.88%) 1.01s (± 0.81%) ~ 1.00s 1.02s p=0.550 n=6
Check Time 7.04s (± 0.23%) 7.05s (± 0.47%) ~ 7.03s 7.12s p=0.413 n=6
Emit Time 4.25s (± 0.36%) 4.24s (± 0.57%) ~ 4.21s 4.28s p=0.505 n=6
Total Time 14.87s (± 0.36%) 14.89s (± 0.45%) ~ 14.81s 15.00s p=0.810 n=6
TFS - node (v18.10.0, x64)
Memory used 300,794k (± 0.01%) 300,797k (± 0.01%) ~ 300,744k 300,842k p=1.000 n=6
Parse Time 2.08s (± 0.40%) 2.06s (± 1.43%) ~ 2.02s 2.10s p=0.085 n=6
Bind Time 1.13s (± 0.48%) 1.14s (± 0.73%) +0.01s (+ 0.88%) 1.14s 1.16s p=0.038 n=6
Check Time 6.52s (± 0.62%) 6.51s (± 0.33%) ~ 6.48s 6.53s p=0.511 n=6
Emit Time 3.85s (± 0.60%) 3.85s (± 0.56%) ~ 3.82s 3.88s p=1.000 n=6
Total Time 13.59s (± 0.35%) 13.56s (± 0.43%) ~ 13.49s 13.65s p=0.327 n=6
material-ui - node (v18.10.0, x64)
Memory used 478,356k (± 0.01%) 478,437k (± 0.01%) +81k (+ 0.02%) 478,388k 478,556k p=0.008 n=6
Parse Time 3.00s (± 3.09%) 3.06s (± 2.08%) ~ 2.94s 3.13s p=0.222 n=6
Bind Time 0.96s (± 8.19%) 0.94s (± 7.03%) ~ 0.90s 1.07s p=0.683 n=6
Check Time 17.04s (± 0.30%) 17.15s (± 0.78%) ~ 17.00s 17.32s p=0.108 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.00s (± 0.28%) 21.15s (± 0.67%) ~ 20.97s 21.30s p=0.065 n=6
xstate - node (v18.10.0, x64)
Memory used 553,236k (± 0.02%) 553,306k (± 0.03%) ~ 553,039k 553,475k p=0.378 n=6
Parse Time 3.77s (± 0.51%) 3.77s (± 0.37%) ~ 3.74s 3.78s p=0.565 n=6
Bind Time 1.68s (± 0.45%) 1.67s (± 2.59%) ~ 1.58s 1.70s p=0.620 n=6
Check Time 2.79s (± 0.67%) 2.79s (± 0.37%) ~ 2.77s 2.80s p=0.367 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 0.00%) ~ 0.08s 0.08s p=1.000 n=6
Total Time 8.33s (± 0.36%) 8.30s (± 0.56%) ~ 8.22s 8.34s p=0.520 n=6
Angular - node (v16.17.1, x64)
Memory used 361,463k (± 0.01%) 361,470k (± 0.01%) ~ 361,432k 361,508k p=0.873 n=6
Parse Time 3.51s (± 0.42%) 3.52s (± 0.43%) ~ 3.51s 3.54s p=0.287 n=6
Bind Time 1.18s (± 0.64%) 1.18s (± 0.64%) ~ 1.17s 1.19s p=0.487 n=6
Check Time 9.43s (± 0.28%) 9.44s (± 0.32%) ~ 9.40s 9.49s p=0.467 n=6
Emit Time 7.94s (± 0.56%) 7.90s (± 0.36%) ~ 7.86s 7.93s p=0.107 n=6
Total Time 22.06s (± 0.21%) 22.05s (± 0.27%) ~ 21.94s 22.10s p=0.872 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 192,500k (± 0.02%) 192,562k (± 0.04%) ~ 192,464k 192,635k p=0.230 n=6
Parse Time 1.57s (± 2.10%) 1.57s (± 1.48%) ~ 1.54s 1.60s p=1.000 n=6
Bind Time 0.82s (± 0.50%) 0.83s (± 0.66%) ~ 0.82s 0.83s p=0.054 n=6
Check Time 10.09s (± 0.36%) 10.12s (± 0.75%) ~ 10.03s 10.25s p=0.468 n=6
Emit Time 2.99s (± 0.78%) 2.99s (± 0.54%) ~ 2.97s 3.01s p=0.625 n=6
Total Time 15.47s (± 0.34%) 15.51s (± 0.39%) ~ 15.43s 15.59s p=0.228 n=6
Monaco - node (v16.17.1, x64)
Memory used 346,720k (± 0.01%) 346,727k (± 0.01%) ~ 346,687k 346,762k p=0.748 n=6
Parse Time 2.72s (± 0.19%) 2.72s (± 0.43%) ~ 2.70s 2.73s p=0.666 n=6
Bind Time 1.09s (± 0.82%) 1.09s (± 0.37%) ~ 1.08s 1.09s p=0.787 n=6
Check Time 7.73s (± 0.48%) 7.74s (± 0.45%) ~ 7.69s 7.78s p=0.747 n=6
Emit Time 4.46s (± 0.62%) 4.45s (± 0.68%) ~ 4.40s 4.49s p=0.627 n=6
Total Time 15.99s (± 0.33%) 16.00s (± 0.35%) ~ 15.95s 16.10s p=0.936 n=6
TFS - node (v16.17.1, x64)
Memory used 300,139k (± 0.00%) 300,139k (± 0.01%) ~ 300,100k 300,191k p=0.810 n=6
Parse Time 2.17s (± 0.50%) 2.17s (± 0.94%) ~ 2.15s 2.20s p=1.000 n=6
Bind Time 1.25s (± 0.60%) 1.25s (± 0.00%) ~ 1.25s 1.25s p=0.598 n=6
Check Time 7.19s (± 0.51%) 7.18s (± 0.57%) ~ 7.12s 7.24s p=0.418 n=6
Emit Time 4.33s (± 0.65%) 4.35s (± 0.62%) ~ 4.32s 4.39s p=0.376 n=6
Total Time 14.95s (± 0.28%) 14.95s (± 0.23%) ~ 14.88s 14.97s p=0.872 n=6
material-ui - node (v16.17.1, x64)
Memory used 477,689k (± 0.02%) 477,819k (± 0.00%) +130k (+ 0.03%) 477,805k 477,847k p=0.005 n=6
Parse Time 3.21s (± 0.39%) 3.22s (± 0.31%) ~ 3.21s 3.23s p=0.360 n=6
Bind Time 0.96s (± 0.43%) 0.96s (± 0.78%) ~ 0.95s 0.97s p=1.000 n=6
Check Time 17.98s (± 0.35%) 18.06s (± 0.48%) +0.08s (+ 0.44%) 17.99s 18.19s p=0.037 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.15s (± 0.31%) 22.23s (± 0.38%) +0.08s (+ 0.38%) 22.17s 22.37s p=0.030 n=6
xstate - node (v16.17.1, x64)
Memory used 550,865k (± 0.04%) 550,768k (± 0.02%) ~ 550,649k 550,899k p=0.575 n=6
Parse Time 3.95s (± 0.41%) 3.94s (± 0.38%) ~ 3.91s 3.95s p=0.059 n=6
Bind Time 1.78s (± 0.79%) 1.79s (± 0.82%) ~ 1.76s 1.80s p=0.284 n=6
Check Time 3.03s (± 0.96%) 3.02s (± 1.09%) ~ 2.98s 3.05s p=0.935 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 8.85s (± 0.33%) 8.84s (± 0.64%) ~ 8.74s 8.89s p=1.000 n=6
Angular - node (v14.15.1, x64)
Memory used 355,314k (± 0.00%) 355,328k (± 0.00%) ~ 355,316k 355,361k p=0.148 n=6
Parse Time 3.59s (± 0.33%) 3.57s (± 0.23%) -0.02s (- 0.46%) 3.56s 3.58s p=0.021 n=6
Bind Time 1.23s (± 0.66%) 1.24s (± 1.50%) +0.02s (+ 1.36%) 1.23s 1.28s p=0.045 n=6
Check Time 9.71s (± 0.39%) 9.74s (± 0.47%) ~ 9.69s 9.81s p=0.368 n=6
Emit Time 8.31s (± 0.49%) 8.41s (± 1.38%) ~ 8.27s 8.56s p=0.109 n=6
Total Time 22.84s (± 0.31%) 22.97s (± 0.68%) ~ 22.80s 23.20s p=0.229 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 187,761k (± 0.02%) 187,780k (± 0.01%) ~ 187,750k 187,822k p=0.378 n=6
Parse Time 1.59s (± 0.40%) 1.60s (± 0.61%) ~ 1.58s 1.61s p=0.090 n=6
Bind Time 0.84s (± 0.48%) 0.84s (± 0.65%) ~ 0.84s 0.85s p=0.282 n=6
Check Time 10.15s (± 0.37%) 10.20s (± 0.49%) ~ 10.13s 10.26s p=0.090 n=6
Emit Time 3.12s (± 1.24%) 3.13s (± 1.01%) ~ 3.11s 3.18s p=1.000 n=6
Total Time 15.70s (± 0.29%) 15.78s (± 0.47%) ~ 15.69s 15.89s p=0.108 n=6
Monaco - node (v14.15.1, x64)
Memory used 341,712k (± 0.01%) 341,706k (± 0.00%) ~ 341,697k 341,714k p=0.688 n=6
Parse Time 2.84s (± 0.47%) 2.82s (± 0.54%) ~ 2.81s 2.85s p=0.088 n=6
Bind Time 1.10s (± 0.47%) 1.10s (± 0.68%) ~ 1.09s 1.11s p=0.784 n=6
Check Time 8.13s (± 0.33%) 8.11s (± 0.46%) ~ 8.07s 8.15s p=0.629 n=6
Emit Time 4.67s (± 0.54%) 4.69s (± 0.55%) ~ 4.66s 4.72s p=0.244 n=6
Total Time 16.75s (± 0.24%) 16.73s (± 0.33%) ~ 16.68s 16.82s p=0.375 n=6
TFS - node (v14.15.1, x64)
Memory used 295,233k (± 0.00%) 295,238k (± 0.00%) ~ 295,222k 295,259k p=0.748 n=6
Parse Time 2.40s (± 0.67%) 2.38s (± 0.32%) ~ 2.37s 2.39s p=0.080 n=6
Bind Time 1.07s (± 0.76%) 1.07s (± 0.76%) ~ 1.06s 1.08s p=0.204 n=6
Check Time 7.49s (± 0.70%) 7.49s (± 0.44%) ~ 7.44s 7.53s p=0.809 n=6
Emit Time 4.29s (± 0.86%) 4.28s (± 1.09%) ~ 4.22s 4.34s p=0.629 n=6
Total Time 15.25s (± 0.41%) 15.23s (± 0.40%) ~ 15.13s 15.32s p=0.336 n=6
material-ui - node (v14.15.1, x64)
Memory used 473,265k (± 0.01%) 473,279k (± 0.00%) ~ 473,259k 473,299k p=0.422 n=6
Parse Time 3.33s (± 0.44%) 3.33s (± 0.25%) ~ 3.32s 3.34s p=1.000 n=6
Bind Time 1.00s (± 0.63%) 1.00s (± 0.54%) ~ 1.00s 1.01s p=0.201 n=6
Check Time 18.92s (± 0.52%) 19.01s (± 0.67%) ~ 18.86s 19.21s p=0.298 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.25s (± 0.41%) 23.35s (± 0.55%) ~ 23.21s 23.55s p=0.261 n=6
xstate - node (v14.15.1, x64)
Memory used 539,316k (± 0.00%) 539,307k (± 0.00%) ~ 539,281k 539,340k p=0.423 n=6
Parse Time 4.22s (± 0.63%) 4.24s (± 0.66%) ~ 4.22s 4.29s p=0.809 n=6
Bind Time 1.67s (± 0.31%) 1.67s (± 0.62%) ~ 1.65s 1.68s p=0.928 n=6
Check Time 3.20s (± 0.61%) 3.20s (± 0.41%) ~ 3.18s 3.22s p=0.624 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 9.18s (± 0.25%) 9.20s (± 0.34%) ~ 9.16s 9.25s p=0.260 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 51884 6
Baseline main 6

TSServer

Comparison Report - main..51884
Metric main 51884 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,388ms (± 0.43%) 2,378ms (± 0.30%) ~ 2,368ms 2,386ms p=0.092 n=6
Req 2 - geterr 5,330ms (± 0.39%) 5,370ms (± 0.51%) +40ms (+ 0.74%) 5,327ms 5,405ms p=0.031 n=6
Req 3 - references 337ms (± 1.31%) 336ms (± 0.22%) ~ 335ms 337ms p=0.934 n=6
Req 4 - navto 279ms (± 0.53%) 280ms (± 0.47%) ~ 278ms 282ms p=0.190 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 83ms (± 0.91%) 82ms (± 2.54%) ~ 78ms 84ms p=0.216 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,510ms (± 1.57%) 2,511ms (± 1.87%) ~ 2,457ms 2,580ms p=0.810 n=6
Req 2 - geterr 4,001ms (± 0.70%) 4,004ms (± 0.45%) ~ 3,981ms 4,026ms p=0.748 n=6
Req 3 - references 350ms (± 1.30%) 349ms (± 1.56%) ~ 339ms 355ms p=1.000 n=6
Req 4 - navto 291ms (± 0.85%) 293ms (± 1.03%) ~ 288ms 297ms p=0.373 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 80ms (± 7.73%) 79ms (±10.70%) ~ 62ms 85ms p=0.808 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,019ms (± 0.36%) 3,027ms (± 0.59%) ~ 3,004ms 3,047ms p=0.471 n=6
Req 2 - geterr 1,628ms (± 0.64%) 1,610ms (± 0.59%) -17ms (- 1.07%) 1,595ms 1,624ms p=0.030 n=6
Req 3 - references 108ms (± 1.80%) 107ms (± 2.18%) ~ 104ms 110ms p=0.871 n=6
Req 4 - navto 355ms (± 0.46%) 357ms (± 0.42%) ~ 355ms 359ms p=0.210 n=6
Req 5 - completionInfo count 2,862 (± 0.00%) 2,862 (± 0.00%) ~ 2,862 2,862 p=1.000 n=6
Req 5 - completionInfo 384ms (± 1.48%) 382ms (± 0.61%) ~ 379ms 386ms p=0.520 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,496ms (± 0.40%) 2,504ms (± 0.97%) ~ 2,478ms 2,541ms p=0.810 n=6
Req 2 - geterr 5,739ms (± 0.32%) 5,760ms (± 0.45%) ~ 5,720ms 5,795ms p=0.128 n=6
Req 3 - references 345ms (± 0.34%) 346ms (± 0.40%) ~ 344ms 348ms p=1.000 n=6
Req 4 - navto 278ms (± 0.95%) 278ms (± 0.81%) ~ 274ms 280ms p=1.000 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 73ms (± 1.11%) 74ms (± 1.01%) ~ 73ms 75ms p=0.120 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,671ms (± 0.39%) 2,674ms (± 0.23%) ~ 2,667ms 2,682ms p=0.688 n=6
Req 2 - geterr 4,341ms (± 0.72%) 4,368ms (± 0.38%) ~ 4,346ms 4,397ms p=0.297 n=6
Req 3 - references 359ms (± 0.30%) 361ms (± 1.19%) ~ 356ms 368ms p=0.415 n=6
Req 4 - navto 290ms (± 0.56%) 290ms (± 0.68%) ~ 289ms 294ms p=0.341 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 78ms (± 3.70%) 77ms (± 2.44%) ~ 75ms 80ms p=0.622 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,165ms (± 0.35%) 3,172ms (± 0.24%) ~ 3,160ms 3,181ms p=0.336 n=6
Req 2 - geterr 1,756ms (± 0.75%) 1,764ms (± 0.65%) ~ 1,753ms 1,782ms p=0.336 n=6
Req 3 - references 118ms (± 0.47%) 116ms (± 1.67%) -2ms (- 1.42%) 112ms 117ms p=0.025 n=6
Req 4 - navto 341ms (± 0.48%) 341ms (± 0.35%) ~ 340ms 343ms p=1.000 n=6
Req 5 - completionInfo count 2,862 (± 0.00%) 2,862 (± 0.00%) ~ 2,862 2,862 p=1.000 n=6
Req 5 - completionInfo 397ms (± 0.82%) 415ms (± 6.62%) ~ 397ms 452ms p=0.374 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,588ms (± 0.62%) 2,600ms (± 0.53%) ~ 2,586ms 2,623ms p=0.261 n=6
Req 2 - geterr 6,134ms (± 0.81%) 6,158ms (± 1.03%) ~ 6,091ms 6,247ms p=0.630 n=6
Req 3 - references 365ms (± 0.28%) 365ms (± 1.47%) ~ 359ms 374ms p=0.329 n=6
Req 4 - navto 278ms (± 0.82%) 278ms (± 0.96%) ~ 275ms 283ms p=1.000 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 101ms (± 2.33%) 98ms (± 5.70%) ~ 91ms 103ms p=0.742 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,819ms (± 0.43%) 2,817ms (± 0.35%) ~ 2,804ms 2,826ms p=0.936 n=6
Req 2 - geterr 4,508ms (± 2.24%) 4,593ms (± 2.66%) ~ 4,479ms 4,722ms p=0.298 n=6
Req 3 - references 418ms (± 5.55%) 401ms (± 7.89%) ~ 370ms 432ms p=0.688 n=6
Req 4 - navto 288ms (± 0.60%) 292ms (± 1.13%) +4ms (+ 1.51%) 288ms 297ms p=0.019 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 93ms (± 6.79%) 89ms (± 7.34%) ~ 82ms 95ms p=0.230 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,446ms (± 0.41%) 3,454ms (± 0.55%) ~ 3,431ms 3,487ms p=0.518 n=6
Req 2 - geterr 1,869ms (± 0.42%) 1,869ms (± 0.60%) ~ 1,860ms 1,890ms p=0.810 n=6
Req 3 - references 127ms (± 1.36%) 126ms (± 1.71%) ~ 123ms 129ms p=0.871 n=6
Req 4 - navto 371ms (± 0.40%) 369ms (± 0.36%) ~ 367ms 371ms p=0.084 n=6
Req 5 - completionInfo count 2,862 (± 0.00%) 2,862 (± 0.00%) ~ 2,862 2,862 p=1.000 n=6
Req 5 - completionInfo 408ms (± 0.97%) 412ms (± 1.55%) ~ 403ms 420ms p=0.468 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 51884 6
Baseline main 6

Startup

Comparison Report - main..51884
Metric main 51884 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 141.99ms (± 0.23%) 141.55ms (± 0.15%) -0.44ms (- 0.31%) 140.87ms 144.50ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 226.48ms (± 0.19%) 226.38ms (± 0.15%) ~ 225.37ms 230.03ms p=0.222 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 228.31ms (± 0.18%) 228.27ms (± 0.17%) ~ 227.37ms 232.97ms p=0.844 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 209.80ms (± 0.24%) 209.09ms (± 0.16%) -0.71ms (- 0.34%) 208.32ms 213.52ms p=0.000 n=600
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v16.17.1, x64)
Scenarios
  • tsc-startup - node (v16.17.1, x64)
  • tsserver-startup - node (v16.17.1, x64)
  • tsserverlibrary-startup - node (v16.17.1, x64)
  • typescript-startup - node (v16.17.1, x64)
Benchmark Name Iterations
Current 51884 6
Baseline main 6

Developer Information:

Download Benchmark

@typescript-bot

Copy link
Copy Markdown
Contributor

Hey Wesley Wigham (@weswigham), it looks like the DT test run failed. Please check the log for more details.
You can check the log here.

@jakebailey

Copy link
Copy Markdown
Member

I hit "rerun" on the above; want to see if that works to fix the problem temporarily rather than rerunning from scratch.

@typescript-bot

Copy link
Copy Markdown
Contributor

Hey Wesley Wigham (@weswigham), it looks like the DT test run failed. Please check the log for more details.
You can check the log here.

@jakebailey

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) run dt

@typescript-bot

TypeScript Bot (typescript-bot) commented Mar 15, 2023 •

Copy link
Copy Markdown
Contributor

Heya Jake Bailey (@jakebailey), I've started to run the parallelized Definitely Typed test suite on this PR at ca945a2. You can monitor the build here.

Update: The results are in!

@typescript-bot

Copy link
Copy Markdown
Contributor

Hey Jake Bailey (@jakebailey), the results of running the DT tests are ready.
There were interesting changes:

Branch only errors:

Package: waterline
Error:

Error: /home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/waterline/waterline-tests.ts:121:5
ERROR: 121:5  expect  TypeScript@local compile error: 
Type '"string"' is not assignable to type '"number"'.

    at testTypesVersion (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:194:15)
    at async runTests (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:151:9)

You can check the log here.

@jakebailey

Copy link
Copy Markdown
Member

That DT error looks correct, but, it's a little weird: Playground Link

Comment out | OneToOneAttribute and the error above appears in stable. So, I guess it's correct and I can just update the DT test?

@jakebailey Jake Bailey (jakebailey) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM but maybe we should add the above as a test case?

@weswigham

Copy link
Copy Markdown
Member

Jake Bailey (@jakebailey) do we just want to make a followup PR that adds the test case?

@jakebailey

Copy link
Copy Markdown
Member

Sure, if the author isn't available to do it. I can send it or you can if you have the time. DT has to be fixed too.

@jakebailey

Copy link
Copy Markdown
Member

We can also push to this PR too.

@jakebailey

Copy link
Copy Markdown
Member

I just pushed the test onto the PR, so we should be good to merge this. I'll send the PR to DT.

@weswigham

Copy link
Copy Markdown
Member

Solid, I just figured since it was 4 months since the author opened the PR, and we didn't see any engagement while we were probing the PR, we maybe shouldn't expect prompt implementation of a nice-to-have 😆

@jakebailey

Jake Bailey (jakebailey) commented Mar 20, 2023 •

Copy link
Copy Markdown
Member

Well, good thing we didn't merge, baseline differs from main.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

For Uncommitted Bug PR for untriaged, rejected, closed or missing bug

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Unions with overlapping discriminator property do not perform internal excess property checks

5 participants