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

Add support of spread enum member #40998

Closed
wants to merge 21 commits into from
Closed

Conversation

Kingwl
Copy link
Contributor

@Kingwl Kingwl commented Oct 8, 2020

Fixes #17592

@typescript-bot typescript-bot added the For Uncommitted Bug PR for untriaged, rejected, closed or missing bug label Oct 8, 2020
@Kingwl Kingwl marked this pull request as draft October 8, 2020 17:28
@Kingwl Kingwl changed the title Add support of spread enum member [WIP] Add support of spread enum member Oct 8, 2020
@orta
Copy link
Contributor

orta commented Oct 8, 2020

@typescript-bot pack this - who knows, maybe it will work

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 8, 2020

Heya @orta, I've started to run the tarball bundle task on this PR at 4968b81. You can monitor the build here.

@Kingwl
Copy link
Contributor Author

Kingwl commented Oct 8, 2020

Well.... It's WIP yet.

@TrejGun
Copy link
Contributor

TrejGun commented Oct 9, 2020

thanks man! really usefull

this supports ... syntax
which is usefull for multiple extensions like

enum BasicEvents {
  Start = "Start",
  Finish = "Finish"
}
enum AdvEvents {
  ...BasicEvents,
  Pause = "Pause",
  Resume = "Resume"
}

can I suggest to add a support of extend syntax for single extension?

enum BasicEvents {
  Start = "Start",
  Finish = "Finish"
}
enum AdvEvents extends BasicEvents {
  Pause = "Pause",
  Resume = "Resume"
}

also what happens in case of overlaping

enum Basic1Events {
  Start = "Start",
  Finish = "Finish"
}
enum Basic2Events {
  Start = "Start",
  Finish = "Finish"
}
enum AdvEvents {
  ...Basic1Events,
  ...Basic2Events,
  Pause = "Pause",
  Resume = "Resume"
}

will AdvEvents.Start === Basic1Events.Start ?

@Kingwl
Copy link
Contributor Author

Kingwl commented Oct 9, 2020

@TrejGun

You can see the comment and design notes

@Kingwl
Copy link
Contributor Author

Kingwl commented Oct 9, 2020

@typescript-bot pack this.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 9, 2020

Heya @Kingwl, I've started to run the tarball bundle task on this PR at 4469e09. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 9, 2020

Hey @Kingwl, 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/87436/artifacts?artifactName=tgz&fileId=0733C6262254B5C9AF3AD79F4FC4D0B7875C759A6F5EAE9417F051858459E39302&fileName=/typescript-4.1.0-insiders.20201009.tgz"
    }
}

and then running npm install.


There is also a playground for this build.

@Kingwl
Copy link
Contributor Author

Kingwl commented Oct 10, 2020

@andrewbranch @DanielRosenwasser @sandersn

I have some confuse.

Enum can be merge from many positions.

enum A {
    f = 'f'
}

console.log(A.ff) // [LOG]: undefined

enum B {
    ...A,
    b = 'b'
}

enum A {
    ff = 'ff'
}

console.log(A.f, A.ff, B.f, B.ff, B.b)

console.log(A.f, A.ff, B.f, B.ff, B.b) // [LOG]: "f",  "ff",  "f",  undefined,  "b" 

The enum A has been merged by two declarations. But the spread happened before the second declaration.
As the result. B does not has 'ff' in runtime.
BTW: access enum member before the second declaration is also undefined.

I don't have background about that. So is that expected behavior?

If not. I'd like to propose disallow spread if any enum declaration below of the current one.

@Kingwl
Copy link
Contributor Author

Kingwl commented Oct 10, 2020

Well. It's seems incorrect implements.

It's maybe should be handled as lateBound?

@Kingwl
Copy link
Contributor Author

Kingwl commented Oct 10, 2020

Passed all tests in my pc so.

@typescript-bot pack this.
@typescript-bot perf test.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 10, 2020

Heya @Kingwl, I've started to run the perf test suite on this PR at ab6bcfc. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 10, 2020

Heya @Kingwl, I've started to run the tarball bundle task on this PR at ab6bcfc. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 10, 2020

Hey @Kingwl, 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/87444/artifacts?artifactName=tgz&fileId=E8EB552723BF302C0C5988DF9E7C075FCE843727BDEE4C5ACC1198B71E8BD8DC02&fileName=/typescript-4.1.0-insiders.20201010.tgz"
    }
}

and then running npm install.


There is also a playground for this build.

@typescript-bot
Copy link
Collaborator

@Kingwl
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..40998

Metric master 40998 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 349,757k (± 0.02%) 350,312k (± 0.03%) +555k (+ 0.16%) 350,066k 350,538k
Parse Time 2.01s (± 0.80%) 2.00s (± 0.24%) -0.01s (- 0.60%) 1.99s 2.01s
Bind Time 0.82s (± 1.07%) 0.83s (± 1.67%) +0.01s (+ 0.97%) 0.81s 0.88s
Check Time 4.94s (± 0.54%) 4.95s (± 0.51%) +0.01s (+ 0.26%) 4.91s 5.00s
Emit Time 5.19s (± 0.41%) 5.23s (± 0.67%) +0.04s (+ 0.87%) 5.13s 5.32s
Total Time 12.96s (± 0.34%) 13.02s (± 0.41%) +0.06s (+ 0.42%) 12.86s 13.11s
Monaco - node (v10.16.3, x64)
Memory used 354,351k (± 0.02%) 354,360k (± 0.02%) +9k (+ 0.00%) 354,169k 354,503k
Parse Time 1.57s (± 0.57%) 1.57s (± 0.67%) +0.00s (+ 0.06%) 1.54s 1.59s
Bind Time 0.71s (± 0.56%) 0.72s (± 0.77%) +0.01s (+ 0.98%) 0.71s 0.73s
Check Time 5.07s (± 0.54%) 5.08s (± 0.55%) +0.01s (+ 0.22%) 5.03s 5.17s
Emit Time 2.76s (± 0.93%) 2.77s (± 0.58%) +0.00s (+ 0.07%) 2.72s 2.81s
Total Time 10.11s (± 0.37%) 10.13s (± 0.40%) +0.02s (+ 0.19%) 10.06s 10.27s
TFS - node (v10.16.3, x64)
Memory used 307,640k (± 0.04%) 307,665k (± 0.02%) +25k (+ 0.01%) 307,532k 307,735k
Parse Time 1.22s (± 0.76%) 1.22s (± 0.57%) -0.00s (- 0.08%) 1.20s 1.23s
Bind Time 0.66s (± 1.37%) 0.67s (± 1.40%) +0.01s (+ 1.82%) 0.64s 0.69s
Check Time 4.57s (± 0.94%) 4.58s (± 0.32%) +0.01s (+ 0.22%) 4.54s 4.61s
Emit Time 2.90s (± 1.72%) 2.91s (± 1.36%) +0.01s (+ 0.41%) 2.79s 2.99s
Total Time 9.35s (± 0.59%) 9.38s (± 0.44%) +0.03s (+ 0.32%) 9.26s 9.48s
material-ui - node (v10.16.3, x64)
Memory used 489,125k (± 0.02%) 489,111k (± 0.01%) -14k (- 0.00%) 488,981k 489,226k
Parse Time 1.99s (± 0.54%) 1.99s (± 0.57%) -0.00s (- 0.15%) 1.96s 2.02s
Bind Time 0.65s (± 0.90%) 0.65s (± 0.80%) +0.00s (+ 0.31%) 0.64s 0.66s
Check Time 13.42s (± 0.51%) 13.47s (± 1.14%) +0.05s (+ 0.38%) 13.32s 13.90s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.06s (± 0.45%) 16.11s (± 1.03%) +0.05s (+ 0.32%) 15.94s 16.57s
Angular - node (v12.1.0, x64)
Memory used 326,934k (± 0.02%) 327,467k (± 0.03%) +533k (+ 0.16%) 327,313k 327,714k
Parse Time 2.00s (± 0.53%) 2.01s (± 0.71%) +0.01s (+ 0.55%) 1.97s 2.04s
Bind Time 0.81s (± 1.12%) 0.81s (± 0.49%) 0.00s ( 0.00%) 0.80s 0.82s
Check Time 4.83s (± 0.40%) 4.85s (± 0.56%) +0.02s (+ 0.35%) 4.80s 4.92s
Emit Time 5.39s (± 0.84%) 5.39s (± 0.68%) 0.00s ( 0.00%) 5.32s 5.50s
Total Time 13.04s (± 0.52%) 13.07s (± 0.45%) +0.03s (+ 0.22%) 12.97s 13.24s
Monaco - node (v12.1.0, x64)
Memory used 336,578k (± 0.02%) 336,593k (± 0.02%) +16k (+ 0.00%) 336,449k 336,754k
Parse Time 1.54s (± 0.72%) 1.54s (± 0.55%) +0.00s (+ 0.33%) 1.52s 1.56s
Bind Time 0.69s (± 0.58%) 0.69s (± 0.43%) +0.00s (+ 0.44%) 0.69s 0.70s
Check Time 4.88s (± 0.50%) 4.88s (± 0.40%) +0.00s (+ 0.02%) 4.85s 4.94s
Emit Time 2.82s (± 0.91%) 2.86s (± 1.33%) +0.04s (+ 1.35%) 2.80s 2.97s
Total Time 9.93s (± 0.39%) 9.98s (± 0.49%) +0.05s (+ 0.49%) 9.88s 10.13s
TFS - node (v12.1.0, x64)
Memory used 291,933k (± 0.03%) 291,947k (± 0.03%) +14k (+ 0.00%) 291,761k 292,163k
Parse Time 1.23s (± 0.49%) 1.24s (± 0.60%) +0.02s (+ 1.47%) 1.22s 1.26s
Bind Time 0.65s (± 1.38%) 0.65s (± 0.76%) +0.00s (+ 0.00%) 0.63s 0.65s
Check Time 4.47s (± 0.30%) 4.48s (± 0.64%) +0.02s (+ 0.36%) 4.42s 4.54s
Emit Time 2.92s (± 0.99%) 2.94s (± 0.97%) +0.02s (+ 0.58%) 2.89s 3.01s
Total Time 9.26s (± 0.36%) 9.31s (± 0.53%) +0.05s (+ 0.54%) 9.22s 9.42s
material-ui - node (v12.1.0, x64)
Memory used 467,034k (± 0.05%) 467,050k (± 0.05%) +16k (+ 0.00%) 466,127k 467,300k
Parse Time 2.01s (± 0.37%) 2.02s (± 0.67%) +0.01s (+ 0.40%) 2.00s 2.06s
Bind Time 0.64s (± 1.05%) 0.64s (± 1.01%) +0.01s (+ 0.78%) 0.63s 0.66s
Check Time 12.05s (± 0.94%) 12.05s (± 0.61%) -0.00s (- 0.01%) 11.91s 12.21s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 14.70s (± 0.81%) 14.71s (± 0.51%) +0.01s (+ 0.07%) 14.58s 14.85s
Angular - node (v8.9.0, x64)
Memory used 346,442k (± 0.01%) 346,935k (± 0.02%) +493k (+ 0.14%) 346,693k 347,055k
Parse Time 2.54s (± 0.51%) 2.55s (± 0.38%) +0.01s (+ 0.24%) 2.53s 2.57s
Bind Time 0.85s (± 0.43%) 0.87s (± 0.64%) +0.01s (+ 1.64%) 0.86s 0.88s
Check Time 5.56s (± 0.52%) 5.61s (± 0.55%) +0.05s (+ 0.86%) 5.55s 5.68s
Emit Time 6.15s (± 1.07%) 6.24s (± 1.42%) +0.09s (+ 1.46%) 6.04s 6.52s
Total Time 15.11s (± 0.55%) 15.26s (± 0.72%) +0.15s (+ 1.02%) 15.02s 15.57s
Monaco - node (v8.9.0, x64)
Memory used 355,704k (± 0.02%) 355,803k (± 0.01%) +99k (+ 0.03%) 355,696k 355,878k
Parse Time 1.89s (± 0.77%) 1.88s (± 0.30%) -0.00s (- 0.21%) 1.87s 1.89s
Bind Time 0.89s (± 0.45%) 0.89s (± 0.45%) 0.00s ( 0.00%) 0.88s 0.90s
Check Time 5.62s (± 0.37%) 5.63s (± 0.66%) +0.00s (+ 0.04%) 5.58s 5.72s
Emit Time 3.29s (± 1.17%) 3.29s (± 0.79%) -0.00s (- 0.03%) 3.23s 3.36s
Total Time 11.69s (± 0.28%) 11.68s (± 0.51%) -0.01s (- 0.07%) 11.60s 11.86s
TFS - node (v8.9.0, x64)
Memory used 309,391k (± 0.02%) 309,458k (± 0.01%) +67k (+ 0.02%) 309,391k 309,500k
Parse Time 1.55s (± 0.64%) 1.55s (± 0.45%) -0.00s (- 0.26%) 1.54s 1.57s
Bind Time 0.68s (± 0.73%) 0.67s (± 0.88%) -0.00s (- 0.30%) 0.66s 0.69s
Check Time 5.31s (± 0.58%) 5.32s (± 0.54%) +0.01s (+ 0.26%) 5.28s 5.42s
Emit Time 2.94s (± 0.34%) 2.95s (± 0.63%) +0.01s (+ 0.44%) 2.89s 2.99s
Total Time 10.48s (± 0.34%) 10.50s (± 0.40%) +0.02s (+ 0.17%) 10.38s 10.61s
material-ui - node (v8.9.0, x64)
Memory used 493,431k (± 0.01%) 493,568k (± 0.01%) +137k (+ 0.03%) 493,478k 493,689k
Parse Time 2.40s (± 0.46%) 2.41s (± 0.55%) +0.01s (+ 0.42%) 2.39s 2.45s
Bind Time 0.81s (± 1.02%) 0.81s (± 1.00%) -0.00s (- 0.12%) 0.80s 0.83s
Check Time 17.95s (± 0.69%) 17.94s (± 1.09%) -0.01s (- 0.08%) 17.61s 18.28s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 21.17s (± 0.56%) 21.17s (± 0.91%) -0.00s (- 0.02%) 20.85s 21.49s
Angular - node (v8.9.0, x86)
Memory used 198,690k (± 0.01%) 198,974k (± 0.03%) +284k (+ 0.14%) 198,856k 199,156k
Parse Time 2.48s (± 1.02%) 2.47s (± 0.47%) -0.00s (- 0.08%) 2.45s 2.50s
Bind Time 1.00s (± 1.00%) 1.00s (± 0.58%) -0.00s (- 0.00%) 0.99s 1.02s
Check Time 5.05s (± 0.56%) 5.03s (± 0.75%) -0.02s (- 0.38%) 4.98s 5.13s
Emit Time 5.89s (± 0.83%) 6.06s (± 1.19%) +0.17s (+ 2.92%) 5.92s 6.25s
Total Time 14.42s (± 0.58%) 14.57s (± 0.55%) +0.15s (+ 1.05%) 14.43s 14.75s
Monaco - node (v8.9.0, x86)
Memory used 201,493k (± 0.01%) 201,513k (± 0.02%) +20k (+ 0.01%) 201,444k 201,602k
Parse Time 1.94s (± 1.05%) 1.93s (± 1.05%) -0.01s (- 0.67%) 1.89s 1.99s
Bind Time 0.71s (± 0.47%) 0.71s (± 0.71%) -0.00s (- 0.70%) 0.70s 0.72s
Check Time 5.47s (± 0.38%) 5.55s (± 1.40%) +0.09s (+ 1.55%) 5.44s 5.71s
Emit Time 3.06s (± 0.59%) 2.93s (± 4.72%) 🟩-0.13s (- 4.22%) 2.69s 3.10s
Total Time 11.18s (± 0.25%) 11.11s (± 0.71%) -0.06s (- 0.57%) 10.92s 11.32s
TFS - node (v8.9.0, x86)
Memory used 176,867k (± 0.03%) 176,930k (± 0.02%) +63k (+ 0.04%) 176,867k 177,014k
Parse Time 1.60s (± 1.10%) 1.60s (± 1.31%) 0.00s ( 0.00%) 1.57s 1.65s
Bind Time 0.66s (± 2.04%) 0.65s (± 0.56%) -0.01s (- 1.37%) 0.64s 0.65s
Check Time 4.82s (± 0.58%) 4.85s (± 0.53%) +0.03s (+ 0.66%) 4.80s 4.92s
Emit Time 2.80s (± 0.66%) 2.81s (± 0.81%) +0.00s (+ 0.11%) 2.75s 2.85s
Total Time 9.88s (± 0.51%) 9.91s (± 0.28%) +0.03s (+ 0.27%) 9.85s 9.96s
material-ui - node (v8.9.0, x86)
Memory used 277,878k (± 0.02%) 277,874k (± 0.02%) -4k (- 0.00%) 277,741k 277,988k
Parse Time 2.46s (± 0.43%) 2.46s (± 0.48%) +0.00s (+ 0.20%) 2.44s 2.49s
Bind Time 0.69s (± 1.35%) 0.73s (± 6.52%) +0.04s (+ 6.54%) 0.67s 0.86s
Check Time 16.45s (± 0.73%) 16.36s (± 0.73%) -0.09s (- 0.52%) 16.14s 16.66s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 19.60s (± 0.63%) 19.56s (± 0.56%) -0.04s (- 0.18%) 19.28s 19.82s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory3 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v8.9.0, x64)
  • material-ui - node (v8.9.0, x86)
Benchmark Name Iterations
Current 40998 10
Baseline master 10

@Kingwl
Copy link
Contributor Author

Kingwl commented Oct 11, 2020

seems basicly works.

It's time to add some additional check and improvement the perf.

@Kingwl
Copy link
Contributor Author

Kingwl commented Oct 12, 2020

@typescript-bot pack this.
@typescript-bot perf this.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 12, 2020

Heya @Kingwl, I've started to run the tarball bundle task on this PR at 1b4935c. You can monitor the build here.

@Kingwl
Copy link
Contributor Author

Kingwl commented Oct 12, 2020

@typescript-bot perf test.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 12, 2020

Heya @Kingwl, I've started to run the perf test suite on this PR at 1b4935c. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 12, 2020

Hey @Kingwl, 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/87453/artifacts?artifactName=tgz&fileId=3537AFFCDB96A167123A3DB6EA963FFB92B6DD124F0B2DCC0298B4837A97AD0902&fileName=/typescript-4.1.0-insiders.20201012.tgz"
    }
}

and then running npm install.


There is also a playground for this build.

@typescript-bot
Copy link
Collaborator

@Kingwl
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..40998

Metric master 40998 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 349,757k (± 0.02%) 350,265k (± 0.02%) +508k (+ 0.15%) 350,118k 350,471k
Parse Time 2.01s (± 0.80%) 2.00s (± 0.44%) -0.01s (- 0.45%) 1.98s 2.02s
Bind Time 0.82s (± 1.07%) 0.83s (± 0.54%) +0.00s (+ 0.61%) 0.82s 0.84s
Check Time 4.94s (± 0.54%) 4.97s (± 0.73%) +0.03s (+ 0.63%) 4.88s 5.04s
Emit Time 5.19s (± 0.41%) 5.23s (± 0.78%) +0.04s (+ 0.77%) 5.17s 5.34s
Total Time 12.96s (± 0.34%) 13.03s (± 0.53%) +0.07s (+ 0.50%) 12.87s 13.21s
Monaco - node (v10.16.3, x64)
Memory used 354,351k (± 0.02%) 354,352k (± 0.02%) +1k (+ 0.00%) 354,216k 354,472k
Parse Time 1.57s (± 0.57%) 1.57s (± 0.46%) +0.00s (+ 0.13%) 1.55s 1.58s
Bind Time 0.71s (± 0.56%) 0.72s (± 1.21%) +0.01s (+ 0.98%) 0.71s 0.75s
Check Time 5.07s (± 0.54%) 5.10s (± 0.57%) +0.03s (+ 0.61%) 5.02s 5.17s
Emit Time 2.76s (± 0.93%) 2.79s (± 1.37%) +0.02s (+ 0.90%) 2.72s 2.90s
Total Time 10.11s (± 0.37%) 10.18s (± 0.64%) +0.07s (+ 0.67%) 10.09s 10.34s
TFS - node (v10.16.3, x64)
Memory used 307,640k (± 0.04%) 307,616k (± 0.02%) -24k (- 0.01%) 307,443k 307,792k
Parse Time 1.22s (± 0.76%) 1.22s (± 0.90%) -0.00s (- 0.33%) 1.20s 1.25s
Bind Time 0.66s (± 1.37%) 0.67s (± 1.40%) +0.01s (+ 1.36%) 0.64s 0.68s
Check Time 4.57s (± 0.94%) 4.58s (± 0.82%) +0.01s (+ 0.20%) 4.51s 4.67s
Emit Time 2.90s (± 1.72%) 2.95s (± 0.85%) +0.05s (+ 1.62%) 2.88s 3.01s
Total Time 9.35s (± 0.59%) 9.41s (± 0.53%) +0.06s (+ 0.65%) 9.30s 9.53s
material-ui - node (v10.16.3, x64)
Memory used 489,125k (± 0.02%) 489,118k (± 0.01%) -7k (- 0.00%) 488,998k 489,263k
Parse Time 1.99s (± 0.54%) 2.00s (± 0.60%) +0.00s (+ 0.25%) 1.98s 2.02s
Bind Time 0.65s (± 0.90%) 0.65s (± 0.86%) +0.00s (+ 0.15%) 0.64s 0.66s
Check Time 13.42s (± 0.51%) 13.51s (± 0.56%) +0.09s (+ 0.64%) 13.34s 13.66s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.06s (± 0.45%) 16.16s (± 0.47%) +0.10s (+ 0.60%) 15.99s 16.32s
Angular - node (v12.1.0, x64)
Memory used 326,934k (± 0.02%) 327,430k (± 0.03%) +496k (+ 0.15%) 327,247k 327,609k
Parse Time 2.00s (± 0.53%) 2.00s (± 0.77%) -0.00s (- 0.20%) 1.96s 2.03s
Bind Time 0.81s (± 1.12%) 0.81s (± 0.64%) +0.00s (+ 0.00%) 0.80s 0.82s
Check Time 4.83s (± 0.40%) 4.86s (± 0.43%) +0.03s (+ 0.58%) 4.81s 4.89s
Emit Time 5.39s (± 0.84%) 5.41s (± 0.71%) +0.01s (+ 0.24%) 5.33s 5.50s
Total Time 13.04s (± 0.52%) 13.07s (± 0.36%) +0.04s (+ 0.28%) 12.99s 13.22s
Monaco - node (v12.1.0, x64)
Memory used 336,578k (± 0.02%) 336,577k (± 0.02%) -1k (- 0.00%) 336,382k 336,726k
Parse Time 1.54s (± 0.72%) 1.54s (± 0.65%) +0.00s (+ 0.07%) 1.51s 1.56s
Bind Time 0.69s (± 0.58%) 0.69s (± 0.32%) -0.00s (- 0.00%) 0.68s 0.69s
Check Time 4.88s (± 0.50%) 4.91s (± 0.38%) +0.02s (+ 0.47%) 4.86s 4.94s
Emit Time 2.82s (± 0.91%) 2.83s (± 0.92%) +0.00s (+ 0.14%) 2.78s 2.89s
Total Time 9.93s (± 0.39%) 9.96s (± 0.33%) +0.03s (+ 0.29%) 9.90s 10.04s
TFS - node (v12.1.0, x64)
Memory used 291,933k (± 0.03%) 291,891k (± 0.01%) -43k (- 0.01%) 291,826k 291,963k
Parse Time 1.23s (± 0.49%) 1.22s (± 0.87%) -0.00s (- 0.08%) 1.20s 1.26s
Bind Time 0.65s (± 1.38%) 0.64s (± 1.16%) -0.00s (- 0.46%) 0.63s 0.66s
Check Time 4.47s (± 0.30%) 4.49s (± 0.57%) +0.02s (+ 0.43%) 4.42s 4.53s
Emit Time 2.92s (± 0.99%) 2.94s (± 0.58%) +0.02s (+ 0.72%) 2.91s 2.97s
Total Time 9.26s (± 0.36%) 9.29s (± 0.40%) +0.03s (+ 0.35%) 9.18s 9.34s
material-ui - node (v12.1.0, x64)
Memory used 467,034k (± 0.05%) 467,166k (± 0.01%) +132k (+ 0.03%) 467,098k 467,338k
Parse Time 2.01s (± 0.37%) 2.00s (± 0.62%) -0.02s (- 0.79%) 1.97s 2.02s
Bind Time 0.64s (± 1.05%) 0.64s (± 0.70%) +0.00s (+ 0.16%) 0.63s 0.65s
Check Time 12.05s (± 0.94%) 12.03s (± 0.60%) -0.02s (- 0.17%) 11.92s 12.20s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 14.70s (± 0.81%) 14.66s (± 0.52%) -0.04s (- 0.26%) 14.53s 14.85s
Angular - node (v8.9.0, x64)
Memory used 346,442k (± 0.01%) 346,926k (± 0.02%) +484k (+ 0.14%) 346,699k 347,045k
Parse Time 2.54s (± 0.51%) 2.55s (± 0.51%) +0.00s (+ 0.08%) 2.53s 2.59s
Bind Time 0.85s (± 0.43%) 0.86s (± 0.69%) +0.01s (+ 1.17%) 0.85s 0.88s
Check Time 5.56s (± 0.52%) 5.57s (± 0.60%) +0.01s (+ 0.23%) 5.50s 5.65s
Emit Time 6.15s (± 1.07%) 6.19s (± 0.99%) +0.04s (+ 0.68%) 6.05s 6.35s
Total Time 15.11s (± 0.55%) 15.17s (± 0.44%) +0.06s (+ 0.42%) 14.98s 15.30s
Monaco - node (v8.9.0, x64)
Memory used 355,704k (± 0.02%) 355,824k (± 0.02%) +120k (+ 0.03%) 355,632k 355,990k
Parse Time 1.89s (± 0.77%) 1.89s (± 0.51%) +0.00s (+ 0.16%) 1.87s 1.91s
Bind Time 0.89s (± 0.45%) 0.89s (± 0.45%) -0.00s (- 0.22%) 0.88s 0.90s
Check Time 5.62s (± 0.37%) 5.65s (± 0.53%) +0.03s (+ 0.46%) 5.59s 5.70s
Emit Time 3.29s (± 1.17%) 3.26s (± 1.24%) -0.03s (- 0.79%) 3.21s 3.40s
Total Time 11.69s (± 0.28%) 11.69s (± 0.59%) -0.00s (- 0.02%) 11.57s 11.90s
TFS - node (v8.9.0, x64)
Memory used 309,391k (± 0.02%) 309,404k (± 0.01%) +12k (+ 0.00%) 309,357k 309,492k
Parse Time 1.55s (± 0.64%) 1.56s (± 0.57%) +0.00s (+ 0.19%) 1.55s 1.59s
Bind Time 0.68s (± 0.73%) 0.68s (± 0.59%) +0.00s (+ 0.44%) 0.67s 0.69s
Check Time 5.31s (± 0.58%) 5.33s (± 0.54%) +0.02s (+ 0.30%) 5.28s 5.39s
Emit Time 2.94s (± 0.34%) 2.94s (± 0.61%) +0.00s (+ 0.07%) 2.89s 2.98s
Total Time 10.48s (± 0.34%) 10.50s (± 0.30%) +0.02s (+ 0.17%) 10.44s 10.57s
material-ui - node (v8.9.0, x64)
Memory used 493,431k (± 0.01%) 493,615k (± 0.01%) +185k (+ 0.04%) 493,482k 493,750k
Parse Time 2.40s (± 0.46%) 2.41s (± 0.53%) +0.00s (+ 0.21%) 2.39s 2.45s
Bind Time 0.81s (± 1.02%) 0.82s (± 1.06%) +0.00s (+ 0.49%) 0.80s 0.84s
Check Time 17.95s (± 0.69%) 18.11s (± 1.10%) +0.16s (+ 0.88%) 17.63s 18.59s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 21.17s (± 0.56%) 21.34s (± 0.94%) +0.16s (+ 0.78%) 20.89s 21.83s
Angular - node (v8.9.0, x86)
Memory used 198,690k (± 0.01%) 198,983k (± 0.04%) +293k (+ 0.15%) 198,813k 199,128k
Parse Time 2.48s (± 1.02%) 2.48s (± 0.70%) -0.00s (- 0.04%) 2.45s 2.53s
Bind Time 1.00s (± 1.00%) 1.00s (± 0.81%) -0.00s (- 0.00%) 0.99s 1.03s
Check Time 5.05s (± 0.56%) 5.03s (± 0.45%) -0.02s (- 0.46%) 4.97s 5.07s
Emit Time 5.89s (± 0.83%) 6.00s (± 0.63%) +0.11s (+ 1.90%) 5.92s 6.06s
Total Time 14.42s (± 0.58%) 14.50s (± 0.31%) +0.08s (+ 0.58%) 14.39s 14.56s
Monaco - node (v8.9.0, x86)
Memory used 201,493k (± 0.01%) 201,575k (± 0.02%) +82k (+ 0.04%) 201,503k 201,704k
Parse Time 1.94s (± 1.05%) 1.94s (± 0.97%) -0.00s (- 0.15%) 1.90s 1.99s
Bind Time 0.71s (± 0.47%) 0.71s (± 0.73%) +0.00s (+ 0.14%) 0.70s 0.72s
Check Time 5.47s (± 0.38%) 5.52s (± 1.14%) +0.05s (+ 0.97%) 5.45s 5.76s
Emit Time 3.06s (± 0.59%) 3.05s (± 2.46%) -0.01s (- 0.29%) 2.75s 3.11s
Total Time 11.18s (± 0.25%) 11.22s (± 0.40%) +0.04s (+ 0.37%) 11.11s 11.30s
TFS - node (v8.9.0, x86)
Memory used 176,867k (± 0.03%) 176,962k (± 0.03%) +95k (+ 0.05%) 176,882k 177,108k
Parse Time 1.60s (± 1.10%) 1.59s (± 0.67%) -0.01s (- 0.62%) 1.57s 1.62s
Bind Time 0.66s (± 2.04%) 0.65s (± 0.34%) -0.01s (- 0.92%) 0.64s 0.65s
Check Time 4.82s (± 0.58%) 4.85s (± 0.69%) +0.03s (+ 0.54%) 4.77s 4.91s
Emit Time 2.80s (± 0.66%) 2.84s (± 1.02%) +0.04s (+ 1.43%) 2.79s 2.91s
Total Time 9.88s (± 0.51%) 9.93s (± 0.43%) +0.05s (+ 0.49%) 9.85s 10.06s
material-ui - node (v8.9.0, x86)
Memory used 277,878k (± 0.02%) 277,890k (± 0.01%) +13k (+ 0.00%) 277,805k 277,992k
Parse Time 2.46s (± 0.43%) 2.46s (± 0.61%) +0.00s (+ 0.16%) 2.43s 2.49s
Bind Time 0.69s (± 1.35%) 0.70s (± 1.71%) +0.02s (+ 2.18%) 0.68s 0.73s
Check Time 16.45s (± 0.73%) 16.42s (± 0.74%) -0.03s (- 0.16%) 16.10s 16.71s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 19.60s (± 0.63%) 19.59s (± 0.59%) -0.01s (- 0.04%) 19.30s 19.90s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory3 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v8.9.0, x64)
  • material-ui - node (v8.9.0, x86)
Benchmark Name Iterations
Current 40998 10
Baseline master 10

@Kingwl
Copy link
Contributor Author

Kingwl commented Oct 12, 2020

@typescript-bot perf test.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 12, 2020

Heya @Kingwl, I've started to run the perf test suite on this PR at 1b4935c. You can monitor the build here.

Update: The results are in!

@Kingwl Kingwl marked this pull request as ready for review October 12, 2020 12:34
@Kingwl Kingwl changed the title [WIP] Add support of spread enum member Add support of spread enum member Oct 12, 2020
@typescript-bot
Copy link
Collaborator

@Kingwl
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..40998

Metric master 40998 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 349,757k (± 0.02%) 350,235k (± 0.02%) +478k (+ 0.14%) 350,079k 350,376k
Parse Time 2.01s (± 0.80%) 1.99s (± 0.52%) -0.02s (- 0.85%) 1.97s 2.01s
Bind Time 0.82s (± 1.07%) 0.82s (± 0.73%) +0.00s (+ 0.24%) 0.81s 0.84s
Check Time 4.94s (± 0.54%) 4.95s (± 0.57%) +0.01s (+ 0.24%) 4.88s 5.00s
Emit Time 5.19s (± 0.41%) 5.24s (± 0.66%) +0.05s (+ 1.06%) 5.18s 5.32s
Total Time 12.96s (± 0.34%) 13.01s (± 0.30%) +0.05s (+ 0.38%) 12.93s 13.10s
Monaco - node (v10.16.3, x64)
Memory used 354,351k (± 0.02%) 354,363k (± 0.02%) +12k (+ 0.00%) 354,190k 354,445k
Parse Time 1.57s (± 0.57%) 1.56s (± 0.72%) -0.01s (- 0.70%) 1.52s 1.58s
Bind Time 0.71s (± 0.56%) 0.72s (± 0.51%) +0.00s (+ 0.70%) 0.71s 0.72s
Check Time 5.07s (± 0.54%) 5.08s (± 0.40%) +0.01s (+ 0.28%) 5.03s 5.13s
Emit Time 2.76s (± 0.93%) 2.75s (± 0.49%) -0.01s (- 0.43%) 2.73s 2.79s
Total Time 10.11s (± 0.37%) 10.11s (± 0.17%) -0.01s (- 0.07%) 10.07s 10.14s
TFS - node (v10.16.3, x64)
Memory used 307,640k (± 0.04%) 307,688k (± 0.02%) +48k (+ 0.02%) 307,534k 307,831k
Parse Time 1.22s (± 0.76%) 1.21s (± 0.56%) -0.01s (- 0.65%) 1.20s 1.23s
Bind Time 0.66s (± 1.37%) 0.67s (± 1.12%) +0.01s (+ 1.97%) 0.65s 0.69s
Check Time 4.57s (± 0.94%) 4.56s (± 0.53%) -0.01s (- 0.13%) 4.52s 4.62s
Emit Time 2.90s (± 1.72%) 2.91s (± 0.68%) +0.02s (+ 0.52%) 2.88s 2.96s
Total Time 9.35s (± 0.59%) 9.36s (± 0.31%) +0.02s (+ 0.17%) 9.30s 9.43s
material-ui - node (v10.16.3, x64)
Memory used 489,125k (± 0.02%) 489,104k (± 0.02%) -21k (- 0.00%) 488,935k 489,213k
Parse Time 1.99s (± 0.54%) 1.98s (± 0.73%) -0.01s (- 0.65%) 1.95s 2.02s
Bind Time 0.65s (± 0.90%) 0.65s (± 0.75%) +0.01s (+ 1.08%) 0.64s 0.66s
Check Time 13.42s (± 0.51%) 13.43s (± 0.72%) +0.01s (+ 0.07%) 13.25s 13.65s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.06s (± 0.45%) 16.07s (± 0.66%) +0.00s (+ 0.03%) 15.88s 16.29s
Angular - node (v12.1.0, x64)
Memory used 326,934k (± 0.02%) 327,154k (± 0.13%) +220k (+ 0.07%) 325,936k 327,533k
Parse Time 2.00s (± 0.53%) 2.01s (± 0.73%) +0.01s (+ 0.30%) 1.99s 2.05s
Bind Time 0.81s (± 1.12%) 0.81s (± 0.55%) -0.00s (- 0.12%) 0.80s 0.82s
Check Time 4.83s (± 0.40%) 4.89s (± 0.67%) +0.06s (+ 1.18%) 4.83s 4.96s
Emit Time 5.39s (± 0.84%) 5.44s (± 1.02%) +0.05s (+ 0.93%) 5.34s 5.59s
Total Time 13.04s (± 0.52%) 13.15s (± 0.72%) +0.11s (+ 0.87%) 12.98s 13.35s
Monaco - node (v12.1.0, x64)
Memory used 336,578k (± 0.02%) 336,568k (± 0.02%) -10k (- 0.00%) 336,414k 336,722k
Parse Time 1.54s (± 0.72%) 1.55s (± 0.54%) +0.01s (+ 0.59%) 1.53s 1.56s
Bind Time 0.69s (± 0.58%) 0.70s (± 0.71%) +0.01s (+ 1.02%) 0.69s 0.71s
Check Time 4.88s (± 0.50%) 4.89s (± 0.40%) +0.01s (+ 0.25%) 4.86s 4.94s
Emit Time 2.82s (± 0.91%) 2.81s (± 0.75%) -0.01s (- 0.28%) 2.77s 2.86s
Total Time 9.93s (± 0.39%) 9.95s (± 0.36%) +0.02s (+ 0.22%) 9.85s 10.01s
TFS - node (v12.1.0, x64)
Memory used 291,933k (± 0.03%) 291,985k (± 0.02%) +52k (+ 0.02%) 291,849k 292,098k
Parse Time 1.23s (± 0.49%) 1.23s (± 0.59%) +0.01s (+ 0.57%) 1.22s 1.25s
Bind Time 0.65s (± 1.38%) 0.65s (± 0.69%) +0.00s (+ 0.31%) 0.64s 0.66s
Check Time 4.47s (± 0.30%) 4.48s (± 0.35%) +0.01s (+ 0.31%) 4.44s 4.51s
Emit Time 2.92s (± 0.99%) 2.94s (± 1.15%) +0.02s (+ 0.58%) 2.87s 3.04s
Total Time 9.26s (± 0.36%) 9.30s (± 0.40%) +0.04s (+ 0.42%) 9.24s 9.41s
material-ui - node (v12.1.0, x64)
Memory used 467,034k (± 0.05%) 467,052k (± 0.05%) +18k (+ 0.00%) 466,183k 467,225k
Parse Time 2.01s (± 0.37%) 2.00s (± 0.58%) -0.01s (- 0.45%) 1.98s 2.04s
Bind Time 0.64s (± 1.05%) 0.64s (± 0.87%) +0.01s (+ 0.78%) 0.63s 0.65s
Check Time 12.05s (± 0.94%) 12.09s (± 0.82%) +0.04s (+ 0.32%) 11.91s 12.31s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 14.70s (± 0.81%) 14.73s (± 0.69%) +0.03s (+ 0.23%) 14.56s 14.97s
Angular - node (v8.9.0, x64)
Memory used 346,442k (± 0.01%) 346,928k (± 0.02%) +486k (+ 0.14%) 346,759k 347,084k
Parse Time 2.54s (± 0.51%) 2.55s (± 0.42%) +0.01s (+ 0.39%) 2.53s 2.58s
Bind Time 0.85s (± 0.43%) 0.87s (± 0.71%) +0.01s (+ 1.76%) 0.86s 0.88s
Check Time 5.56s (± 0.52%) 5.59s (± 0.67%) +0.03s (+ 0.56%) 5.50s 5.66s
Emit Time 6.15s (± 1.07%) 6.24s (± 0.71%) +0.09s (+ 1.51%) 6.15s 6.35s
Total Time 15.11s (± 0.55%) 15.25s (± 0.32%) +0.14s (+ 0.95%) 15.18s 15.39s
Monaco - node (v8.9.0, x64)
Memory used 355,704k (± 0.02%) 355,830k (± 0.01%) +126k (+ 0.04%) 355,685k 355,917k
Parse Time 1.89s (± 0.77%) 1.88s (± 0.40%) -0.01s (- 0.48%) 1.86s 1.89s
Bind Time 0.89s (± 0.45%) 0.89s (± 0.75%) -0.00s (- 0.11%) 0.87s 0.90s
Check Time 5.62s (± 0.37%) 5.67s (± 0.46%) +0.04s (+ 0.73%) 5.62s 5.74s
Emit Time 3.29s (± 1.17%) 3.26s (± 1.02%) -0.02s (- 0.64%) 3.21s 3.37s
Total Time 11.69s (± 0.28%) 11.69s (± 0.43%) +0.00s (+ 0.04%) 11.57s 11.82s
TFS - node (v8.9.0, x64)
Memory used 309,391k (± 0.02%) 309,438k (± 0.02%) +47k (+ 0.02%) 309,344k 309,593k
Parse Time 1.55s (± 0.64%) 1.55s (± 0.29%) -0.01s (- 0.32%) 1.54s 1.56s
Bind Time 0.68s (± 0.73%) 0.68s (± 0.55%) -0.00s (- 0.15%) 0.67s 0.68s
Check Time 5.31s (± 0.58%) 5.29s (± 0.39%) -0.02s (- 0.32%) 5.25s 5.33s
Emit Time 2.94s (± 0.34%) 2.93s (± 0.64%) -0.01s (- 0.20%) 2.89s 2.96s
Total Time 10.48s (± 0.34%) 10.45s (± 0.27%) -0.03s (- 0.33%) 10.39s 10.51s
material-ui - node (v8.9.0, x64)
Memory used 493,431k (± 0.01%) 493,505k (± 0.01%) +74k (+ 0.01%) 493,424k 493,576k
Parse Time 2.40s (± 0.46%) 2.40s (± 0.50%) +0.00s (+ 0.08%) 2.37s 2.43s
Bind Time 0.81s (± 1.02%) 0.81s (± 1.04%) -0.00s (- 0.61%) 0.79s 0.83s
Check Time 17.95s (± 0.69%) 18.14s (± 1.08%) +0.19s (+ 1.05%) 17.63s 18.57s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 21.17s (± 0.56%) 21.35s (± 0.87%) +0.18s (+ 0.86%) 20.87s 21.77s
Angular - node (v8.9.0, x86)
Memory used 198,690k (± 0.01%) 198,979k (± 0.03%) +288k (+ 0.15%) 198,862k 199,139k
Parse Time 2.48s (± 1.02%) 2.47s (± 0.82%) -0.00s (- 0.20%) 2.44s 2.53s
Bind Time 1.00s (± 1.00%) 1.01s (± 1.37%) +0.01s (+ 0.80%) 0.99s 1.06s
Check Time 5.05s (± 0.56%) 5.04s (± 0.51%) -0.00s (- 0.06%) 4.98s 5.10s
Emit Time 5.89s (± 0.83%) 6.01s (± 1.10%) +0.13s (+ 2.16%) 5.90s 6.18s
Total Time 14.42s (± 0.58%) 14.54s (± 0.51%) +0.13s (+ 0.89%) 14.44s 14.73s
Monaco - node (v8.9.0, x86)
Memory used 201,493k (± 0.01%) 201,603k (± 0.02%) +110k (+ 0.05%) 201,513k 201,703k
Parse Time 1.94s (± 1.05%) 1.92s (± 0.85%) -0.02s (- 1.18%) 1.90s 1.98s
Bind Time 0.71s (± 0.47%) 0.71s (± 0.53%) -0.00s (- 0.70%) 0.70s 0.71s
Check Time 5.47s (± 0.38%) 5.56s (± 1.76%) +0.09s (+ 1.66%) 5.42s 5.79s
Emit Time 3.06s (± 0.59%) 2.98s (± 3.92%) -0.07s (- 2.39%) 2.70s 3.10s
Total Time 11.18s (± 0.25%) 11.17s (± 0.49%) -0.01s (- 0.10%) 10.98s 11.25s
TFS - node (v8.9.0, x86)
Memory used 176,867k (± 0.03%) 176,969k (± 0.02%) +101k (+ 0.06%) 176,914k 177,019k
Parse Time 1.60s (± 1.10%) 1.59s (± 0.87%) -0.01s (- 0.87%) 1.57s 1.63s
Bind Time 0.66s (± 2.04%) 0.65s (± 1.06%) -0.01s (- 1.53%) 0.64s 0.67s
Check Time 4.82s (± 0.58%) 4.81s (± 0.75%) -0.01s (- 0.15%) 4.75s 4.89s
Emit Time 2.80s (± 0.66%) 2.83s (± 1.31%) +0.02s (+ 0.82%) 2.75s 2.92s
Total Time 9.88s (± 0.51%) 9.88s (± 0.74%) -0.01s (- 0.08%) 9.76s 10.05s
material-ui - node (v8.9.0, x86)
Memory used 277,878k (± 0.02%) 277,914k (± 0.01%) +37k (+ 0.01%) 277,831k 277,994k
Parse Time 2.46s (± 0.43%) 2.47s (± 0.80%) +0.01s (+ 0.57%) 2.43s 2.51s
Bind Time 0.69s (± 1.35%) 0.73s (± 5.40%) +0.04s (+ 6.25%) 0.68s 0.83s
Check Time 16.45s (± 0.73%) 16.42s (± 0.69%) -0.03s (- 0.16%) 16.23s 16.76s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 19.60s (± 0.63%) 19.63s (± 0.58%) +0.03s (+ 0.16%) 19.39s 19.91s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory3 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v8.9.0, x64)
  • material-ui - node (v8.9.0, x86)
Benchmark Name Iterations
Current 40998 10
Baseline master 10

@Kingwl Kingwl mentioned this pull request Oct 12, 2020
@sandersn sandersn added the Experiment A fork with an experimental idea which might not make it into master label Oct 12, 2020
@Kingwl
Copy link
Contributor Author

Kingwl commented Oct 13, 2020

@typescript-bot pack this.
@typescript-bot perf test.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 13, 2020

Heya @Kingwl, I've started to run the tarball bundle task on this PR at 4aa1fc3. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 13, 2020

Heya @Kingwl, I've started to run the perf test suite on this PR at 4aa1fc3. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 13, 2020

Hey @Kingwl, 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/87467/artifacts?artifactName=tgz&fileId=0AC1F4D4C2F7FD09EE06D47599C0FECBC123ACEB6FCC556697F3A81550E37C4B02&fileName=/typescript-4.1.0-insiders.20201013.tgz"
    }
}

and then running npm install.


There is also a playground for this build.

@typescript-bot
Copy link
Collaborator

@Kingwl
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..40998

Metric master 40998 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 349,757k (± 0.02%) 350,273k (± 0.02%) +516k (+ 0.15%) 350,097k 350,351k
Parse Time 2.01s (± 0.80%) 2.00s (± 0.50%) -0.01s (- 0.60%) 1.98s 2.03s
Bind Time 0.82s (± 1.07%) 0.83s (± 0.69%) +0.01s (+ 0.85%) 0.82s 0.84s
Check Time 4.94s (± 0.54%) 4.97s (± 0.67%) +0.03s (+ 0.67%) 4.90s 5.06s
Emit Time 5.19s (± 0.41%) 5.23s (± 0.80%) +0.04s (+ 0.83%) 5.14s 5.33s
Total Time 12.96s (± 0.34%) 13.03s (± 0.60%) +0.07s (+ 0.52%) 12.87s 13.23s
Monaco - node (v10.16.3, x64)
Memory used 354,351k (± 0.02%) 354,408k (± 0.03%) +57k (+ 0.02%) 354,216k 354,619k
Parse Time 1.57s (± 0.57%) 1.56s (± 1.02%) -0.00s (- 0.19%) 1.52s 1.61s
Bind Time 0.71s (± 0.56%) 0.72s (± 0.69%) +0.01s (+ 0.70%) 0.71s 0.73s
Check Time 5.07s (± 0.54%) 5.10s (± 0.64%) +0.03s (+ 0.49%) 5.05s 5.22s
Emit Time 2.76s (± 0.93%) 2.77s (± 0.56%) +0.00s (+ 0.18%) 2.74s 2.80s
Total Time 10.11s (± 0.37%) 10.14s (± 0.48%) +0.03s (+ 0.32%) 10.08s 10.32s
TFS - node (v10.16.3, x64)
Memory used 307,640k (± 0.04%) 307,642k (± 0.02%) +2k (+ 0.00%) 307,446k 307,798k
Parse Time 1.22s (± 0.76%) 1.22s (± 0.67%) -0.00s (- 0.41%) 1.20s 1.24s
Bind Time 0.66s (± 1.37%) 0.67s (± 1.04%) +0.01s (+ 1.51%) 0.65s 0.69s
Check Time 4.57s (± 0.94%) 4.59s (± 0.59%) +0.03s (+ 0.59%) 4.54s 4.66s
Emit Time 2.90s (± 1.72%) 2.90s (± 1.47%) 0.00s ( 0.00%) 2.76s 2.97s
Total Time 9.35s (± 0.59%) 9.38s (± 0.42%) +0.03s (+ 0.35%) 9.29s 9.44s
material-ui - node (v10.16.3, x64)
Memory used 489,125k (± 0.02%) 489,052k (± 0.01%) -73k (- 0.01%) 488,933k 489,227k
Parse Time 1.99s (± 0.54%) 1.98s (± 0.43%) -0.01s (- 0.50%) 1.97s 2.00s
Bind Time 0.65s (± 0.90%) 0.66s (± 0.68%) +0.01s (+ 1.70%) 0.65s 0.67s
Check Time 13.42s (± 0.51%) 13.41s (± 0.51%) -0.02s (- 0.11%) 13.29s 13.61s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.06s (± 0.45%) 16.04s (± 0.44%) -0.02s (- 0.10%) 15.92s 16.25s
Angular - node (v12.1.0, x64)
Memory used 326,934k (± 0.02%) 327,333k (± 0.09%) +400k (+ 0.12%) 326,246k 327,761k
Parse Time 2.00s (± 0.53%) 1.99s (± 0.41%) -0.01s (- 0.30%) 1.98s 2.01s
Bind Time 0.81s (± 1.12%) 0.81s (± 0.49%) +0.00s (+ 0.00%) 0.80s 0.82s
Check Time 4.83s (± 0.40%) 4.88s (± 0.84%) +0.05s (+ 0.99%) 4.83s 5.02s
Emit Time 5.39s (± 0.84%) 5.45s (± 1.46%) +0.05s (+ 0.93%) 5.33s 5.70s
Total Time 13.04s (± 0.52%) 13.13s (± 0.67%) +0.09s (+ 0.73%) 13.04s 13.35s
Monaco - node (v12.1.0, x64)
Memory used 336,578k (± 0.02%) 336,601k (± 0.02%) +23k (+ 0.01%) 336,457k 336,784k
Parse Time 1.54s (± 0.72%) 1.53s (± 0.53%) -0.00s (- 0.20%) 1.51s 1.55s
Bind Time 0.69s (± 0.58%) 0.69s (± 1.08%) +0.00s (+ 0.58%) 0.68s 0.72s
Check Time 4.88s (± 0.50%) 4.91s (± 0.40%) +0.02s (+ 0.51%) 4.87s 4.97s
Emit Time 2.82s (± 0.91%) 2.83s (± 0.92%) +0.01s (+ 0.28%) 2.80s 2.92s
Total Time 9.93s (± 0.39%) 9.96s (± 0.35%) +0.03s (+ 0.34%) 9.91s 10.08s
TFS - node (v12.1.0, x64)
Memory used 291,933k (± 0.03%) 291,953k (± 0.02%) +19k (+ 0.01%) 291,817k 292,045k
Parse Time 1.23s (± 0.49%) 1.24s (± 0.65%) +0.01s (+ 1.06%) 1.22s 1.26s
Bind Time 0.65s (± 1.38%) 0.64s (± 0.73%) -0.01s (- 0.93%) 0.63s 0.65s
Check Time 4.47s (± 0.30%) 4.47s (± 0.62%) +0.01s (+ 0.16%) 4.42s 4.54s
Emit Time 2.92s (± 0.99%) 2.92s (± 0.98%) -0.00s (- 0.10%) 2.86s 2.99s
Total Time 9.26s (± 0.36%) 9.27s (± 0.61%) +0.01s (+ 0.14%) 9.15s 9.36s
material-ui - node (v12.1.0, x64)
Memory used 467,034k (± 0.05%) 466,948k (± 0.07%) -86k (- 0.02%) 465,983k 467,300k
Parse Time 2.01s (± 0.37%) 2.01s (± 0.53%) -0.01s (- 0.35%) 1.99s 2.04s
Bind Time 0.64s (± 1.05%) 0.64s (± 0.87%) +0.00s (+ 0.16%) 0.63s 0.65s
Check Time 12.05s (± 0.94%) 12.09s (± 0.89%) +0.04s (+ 0.32%) 11.90s 12.41s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 14.70s (± 0.81%) 14.73s (± 0.81%) +0.03s (+ 0.22%) 14.52s 15.10s
Angular - node (v8.9.0, x64)
Memory used 346,442k (± 0.01%) 346,943k (± 0.02%) +501k (+ 0.14%) 346,750k 347,086k
Parse Time 2.54s (± 0.51%) 2.55s (± 0.55%) +0.01s (+ 0.31%) 2.53s 2.59s
Bind Time 0.85s (± 0.43%) 0.86s (± 0.67%) +0.01s (+ 0.70%) 0.85s 0.87s
Check Time 5.56s (± 0.52%) 5.59s (± 0.45%) +0.03s (+ 0.52%) 5.53s 5.65s
Emit Time 6.15s (± 1.07%) 6.20s (± 0.61%) +0.05s (+ 0.80%) 6.07s 6.27s
Total Time 15.11s (± 0.55%) 15.20s (± 0.37%) +0.09s (+ 0.60%) 15.04s 15.33s
Monaco - node (v8.9.0, x64)
Memory used 355,704k (± 0.02%) 355,815k (± 0.01%) +111k (+ 0.03%) 355,698k 355,900k
Parse Time 1.89s (± 0.77%) 1.88s (± 0.56%) -0.01s (- 0.48%) 1.86s 1.91s
Bind Time 0.89s (± 0.45%) 0.89s (± 0.56%) -0.01s (- 0.56%) 0.88s 0.90s
Check Time 5.62s (± 0.37%) 5.60s (± 0.42%) -0.02s (- 0.37%) 5.56s 5.65s
Emit Time 3.29s (± 1.17%) 3.27s (± 1.00%) -0.02s (- 0.61%) 3.22s 3.35s
Total Time 11.69s (± 0.28%) 11.63s (± 0.38%) -0.05s (- 0.44%) 11.54s 11.72s
TFS - node (v8.9.0, x64)
Memory used 309,391k (± 0.02%) 309,460k (± 0.02%) +69k (+ 0.02%) 309,385k 309,605k
Parse Time 1.55s (± 0.64%) 1.55s (± 0.43%) -0.00s (- 0.19%) 1.54s 1.56s
Bind Time 0.68s (± 0.73%) 0.67s (± 0.74%) -0.00s (- 0.15%) 0.66s 0.68s
Check Time 5.31s (± 0.58%) 5.29s (± 0.46%) -0.02s (- 0.32%) 5.24s 5.35s
Emit Time 2.94s (± 0.34%) 2.95s (± 0.89%) +0.01s (+ 0.37%) 2.89s 3.02s
Total Time 10.48s (± 0.34%) 10.47s (± 0.39%) -0.02s (- 0.15%) 10.41s 10.61s
material-ui - node (v8.9.0, x64)
Memory used 493,431k (± 0.01%) 493,535k (± 0.01%) +104k (+ 0.02%) 493,408k 493,692k
Parse Time 2.40s (± 0.46%) 2.41s (± 0.63%) +0.00s (+ 0.17%) 2.37s 2.43s
Bind Time 0.81s (± 1.02%) 0.81s (± 1.15%) -0.01s (- 0.74%) 0.79s 0.82s
Check Time 17.95s (± 0.69%) 18.02s (± 0.63%) +0.07s (+ 0.37%) 17.77s 18.27s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 21.17s (± 0.56%) 21.23s (± 0.53%) +0.06s (+ 0.30%) 21.01s 21.47s
Angular - node (v8.9.0, x86)
Memory used 198,690k (± 0.01%) 199,028k (± 0.02%) +338k (+ 0.17%) 198,984k 199,135k
Parse Time 2.48s (± 1.02%) 2.48s (± 1.42%) +0.00s (+ 0.04%) 2.43s 2.59s
Bind Time 1.00s (± 1.00%) 1.00s (± 1.00%) +0.00s (+ 0.10%) 0.97s 1.02s
Check Time 5.05s (± 0.56%) 5.04s (± 0.59%) -0.01s (- 0.10%) 4.99s 5.12s
Emit Time 5.89s (± 0.83%) 5.98s (± 1.00%) +0.09s (+ 1.53%) 5.84s 6.09s
Total Time 14.42s (± 0.58%) 14.50s (± 0.64%) +0.09s (+ 0.61%) 14.31s 14.76s
Monaco - node (v8.9.0, x86)
Memory used 201,493k (± 0.01%) 201,551k (± 0.01%) +58k (+ 0.03%) 201,474k 201,604k
Parse Time 1.94s (± 1.05%) 1.93s (± 1.23%) -0.02s (- 0.82%) 1.89s 2.00s
Bind Time 0.71s (± 0.47%) 0.71s (± 1.33%) -0.00s (- 0.42%) 0.69s 0.73s
Check Time 5.47s (± 0.38%) 5.54s (± 1.27%) +0.08s (+ 1.43%) 5.42s 5.71s
Emit Time 3.06s (± 0.59%) 2.96s (± 4.25%) 🟩-0.10s (- 3.11%) 2.69s 3.09s
Total Time 11.18s (± 0.25%) 11.14s (± 0.81%) -0.04s (- 0.32%) 10.94s 11.35s
TFS - node (v8.9.0, x86)
Memory used 176,867k (± 0.03%) 176,915k (± 0.03%) +47k (+ 0.03%) 176,830k 177,018k
Parse Time 1.60s (± 1.10%) 1.58s (± 0.97%) -0.02s (- 1.31%) 1.56s 1.64s
Bind Time 0.66s (± 2.04%) 0.64s (± 0.58%) -0.01s (- 1.53%) 0.64s 0.65s
Check Time 4.82s (± 0.58%) 4.81s (± 0.82%) -0.01s (- 0.25%) 4.73s 4.92s
Emit Time 2.80s (± 0.66%) 2.80s (± 0.77%) +0.00s (+ 0.00%) 2.75s 2.85s
Total Time 9.88s (± 0.51%) 9.84s (± 0.58%) -0.04s (- 0.45%) 9.73s 9.96s
material-ui - node (v8.9.0, x86)
Memory used 277,878k (± 0.02%) 277,892k (± 0.02%) +15k (+ 0.01%) 277,756k 277,986k
Parse Time 2.46s (± 0.43%) 2.46s (± 0.45%) -0.00s (- 0.00%) 2.43s 2.48s
Bind Time 0.69s (± 1.35%) 0.71s (± 4.32%) +0.02s (+ 2.62%) 0.67s 0.81s
Check Time 16.45s (± 0.73%) 16.47s (± 0.52%) +0.02s (+ 0.12%) 16.23s 16.62s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 19.60s (± 0.63%) 19.64s (± 0.35%) +0.04s (+ 0.20%) 19.48s 19.77s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory3 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v8.9.0, x64)
  • material-ui - node (v8.9.0, x86)
Benchmark Name Iterations
Current 40998 10
Baseline master 10

@nraskoti92
Copy link

Hi, any plans on merging this PR soon?

@Kingwl
Copy link
Contributor Author

Kingwl commented Jan 21, 2022

Hi, any plans on merging this PR soon?

Nope.

@sandersn
Copy link
Member

This experiment is pretty old, so I'm going to close it to reduce the number of open PRs.

@sandersn sandersn closed this May 24, 2022
@typescript-bot
Copy link
Collaborator

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

@onevetka
Copy link

The problem is still relevant

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Experiment A fork with an experimental idea which might not make it into master For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Extending string-based enums
7 participants