Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Use objects instead of closures for type mappers#36576

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
ahejlsberg merged 11 commits intomasterfromtypeMappersAsObjects
Mar 11, 2020

Conversation

@ahejlsberg
Copy link
Member

@ahejlsbergahejlsberg commentedFeb 2, 2020
edited
Loading

This PR switches our representation of type mappers from functions (that close over state) to objects. This brings greater transparency to the actual mappings performed by type mappers and enables more efficient construction of composite mappers.

The PR improves performance by up to 1% (with a 9% outlier on older versions of Node.js) and memory usage by up to 8%.

Terkwood and Morten-Renner reacted with heart emoji
@ahejlsberg
Copy link
MemberAuthor

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commentedFeb 2, 2020
edited
Loading

Heya@ahejlsberg, I've started to run the perf test suite on this PR at63338f9. You can monitor the buildhere. It should now contribute to this PR's status checks.

Update:The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..36576

Metricmaster36576DeltaBestWorst
Angular - node (v10.16.3, x64)
Memory used356,434k (± 0.02%)358,022k (± 0.01%)+1,588k (+ 0.45%)357,922k358,113k
Parse Time1.62s (± 0.72%)1.61s (± 0.51%)-0.01s (- 0.31%)1.60s1.64s
Bind Time0.89s (± 0.45%)0.88s (± 0.88%)-0.01s (- 1.12%)0.86s0.89s
Check Time4.66s (± 0.59%)4.65s (± 0.44%)-0.01s (- 0.21%)4.61s4.71s
Emit Time5.21s (± 0.89%)5.18s (± 0.59%)-0.02s (- 0.44%)5.10s5.24s
Total Time12.38s (± 0.60%)12.33s (± 0.36%)-0.05s (- 0.40%)12.22s12.42s
Monaco - node (v10.16.3, x64)
Memory used364,597k (± 0.02%)364,043k (± 0.01%)-553k (- 0.15%)363,983k364,125k
Parse Time1.25s (± 0.54%)1.25s (± 0.30%)-0.00s (- 0.16%)1.24s1.25s
Bind Time0.77s (± 0.61%)0.77s (± 0.80%)-0.00s (- 0.13%)0.76s0.78s
Check Time4.68s (± 0.34%)4.66s (± 0.63%)-0.01s (- 0.28%)4.61s4.76s
Emit Time2.88s (± 0.48%)2.89s (± 0.78%)+0.00s (+ 0.14%)2.81s2.93s
Total Time9.58s (± 0.32%)9.57s (± 0.51%)-0.01s (- 0.13%)9.46s9.73s
TFS - node (v10.16.3, x64)
Memory used324,237k (± 0.08%)323,266k (± 0.02%)-971k (- 0.30%)323,147k323,366k
Parse Time0.95s (± 0.47%)0.95s (± 0.50%)-0.00s (- 0.11%)0.94s0.96s
Bind Time0.75s (± 1.18%)0.74s (± 1.36%)-0.00s (- 0.27%)0.72s0.77s
Check Time4.22s (± 0.70%)4.21s (± 0.39%)-0.01s (- 0.14%)4.18s4.26s
Emit Time3.02s (± 0.97%)3.01s (± 0.91%)-0.01s (- 0.23%)2.95s3.07s
Total Time8.93s (± 0.54%)8.92s (± 0.40%)-0.01s (- 0.12%)8.83s8.98s
Angular - node (v12.1.0, x64)
Memory used332,341k (± 0.02%)333,799k (± 0.02%)+1,458k (+ 0.44%)333,658k334,017k
Parse Time1.56s (± 0.77%)1.57s (± 0.90%)+0.01s (+ 0.38%)1.54s1.61s
Bind Time0.86s (± 0.57%)0.87s (± 0.84%)+0.00s (+ 0.46%)0.85s0.89s
Check Time4.58s (± 0.49%)4.59s (± 0.71%)+0.00s (+ 0.00%)4.53s4.64s
Emit Time5.42s (± 0.95%)5.37s (± 1.09%)-0.05s (- 0.92%)5.27s5.58s
Total Time12.44s (± 0.49%)12.40s (± 0.69%)-0.04s (- 0.35%)12.26s12.68s
Monaco - node (v12.1.0, x64)
Memory used344,559k (± 0.02%)343,994k (± 0.02%)-565k (- 0.16%)343,820k344,171k
Parse Time1.22s (± 0.56%)1.22s (± 0.31%)-0.00s (- 0.08%)1.21s1.22s
Bind Time0.75s (± 0.74%)0.74s (± 0.80%)-0.00s (- 0.40%)0.73s0.76s
Check Time4.53s (± 0.43%)4.54s (± 0.59%)+0.01s (+ 0.15%)4.47s4.59s
Emit Time2.95s (± 0.63%)2.97s (± 0.83%)+0.01s (+ 0.37%)2.92s3.02s
Total Time9.45s (± 0.37%)9.47s (± 0.38%)+0.02s (+ 0.17%)9.41s9.54s
TFS - node (v12.1.0, x64)
Memory used306,396k (± 0.02%)305,528k (± 0.02%)-869k (- 0.28%)305,399k305,673k
Parse Time0.94s (± 0.85%)0.94s (± 0.61%)-0.00s (- 0.21%)0.93s0.95s
Bind Time0.70s (± 0.79%)0.70s (± 0.52%)+0.00s (+ 0.28%)0.70s0.71s
Check Time4.18s (± 0.58%)4.20s (± 0.65%)+0.02s (+ 0.41%)4.13s4.25s
Emit Time3.08s (± 0.71%)3.07s (± 0.53%)-0.01s (- 0.32%)3.04s3.10s
Total Time8.91s (± 0.48%)8.91s (± 0.42%)+0.01s (+ 0.07%)8.83s9.00s
Angular - node (v8.9.0, x64)
Memory used351,498k (± 0.02%)352,846k (± 0.02%)+1,348k (+ 0.38%)352,700k353,033k
Parse Time2.09s (± 0.24%)2.11s (± 0.63%)+0.02s (+ 0.95%)2.08s2.14s
Bind Time0.92s (± 0.90%)0.93s (± 1.06%)+0.02s (+ 1.75%)0.90s0.95s
Check Time5.43s (± 0.59%)5.42s (± 0.52%)-0.01s (- 0.13%)5.37s5.47s
Emit Time6.23s (± 0.68%)6.18s (± 0.53%)-0.05s (- 0.77%)6.09s6.25s
Total Time14.67s (± 0.46%)14.65s (± 0.32%)-0.01s (- 0.10%)14.57s14.75s
Monaco - node (v8.9.0, x64)
Memory used362,833k (± 0.01%)362,256k (± 0.01%)-577k (- 0.16%)362,182k362,365k
Parse Time1.56s (± 0.62%)1.56s (± 0.65%)+0.01s (+ 0.38%)1.54s1.59s
Bind Time0.95s (± 0.65%)0.95s (± 0.93%)-0.00s (- 0.21%)0.93s0.97s
Check Time5.44s (± 1.41%)5.37s (± 1.50%)-0.07s (- 1.29%)5.24s5.60s
Emit Time3.26s (± 4.29%)3.33s (± 3.29%)+0.07s (+ 2.15%)2.99s3.46s
Total Time11.21s (± 0.75%)11.21s (± 0.77%)+0.00s (+ 0.02%)11.08s11.45s
TFS - node (v8.9.0, x64)
Memory used323,393k (± 0.01%)322,491k (± 0.01%)-902k (- 0.28%)322,399k322,587k
Parse Time1.26s (± 0.46%)1.26s (± 0.44%)-0.00s (- 0.40%)1.25s1.27s
Bind Time0.76s (± 0.68%)0.76s (± 0.77%)-0.00s (- 0.26%)0.75s0.77s
Check Time4.83s (± 0.43%)4.80s (± 0.71%)-0.04s (- 0.79%)4.72s4.87s
Emit Time3.19s (± 1.29%)3.21s (± 0.62%)+0.02s (+ 0.63%)3.17s3.25s
Total Time10.04s (± 0.58%)10.02s (± 0.39%)-0.02s (- 0.21%)9.95s10.09s
Angular - node (v8.9.0, x86)
Memory used199,825k (± 0.02%)200,598k (± 0.02%)+773k (+ 0.39%)200,526k200,670k
Parse Time2.04s (± 0.91%)2.04s (± 0.92%)+0.00s (+ 0.15%)2.01s2.10s
Bind Time1.05s (± 0.79%)1.05s (± 0.56%)+0.01s (+ 0.76%)1.04s1.07s
Check Time5.00s (± 0.39%)4.93s (± 0.39%)-0.06s (- 1.30%)4.90s4.99s
Emit Time6.14s (± 1.66%)5.99s (± 1.65%)-0.15s (- 2.38%)5.90s6.33s
Total Time14.22s (± 0.78%)14.02s (± 0.70%)-0.20s (- 1.40%)13.91s14.29s
Monaco - node (v8.9.0, x86)
Memory used203,721k (± 0.02%)203,424k (± 0.02%)-297k (- 0.15%)203,340k203,503k
Parse Time1.60s (± 0.68%)1.60s (± 0.48%)-0.00s (- 0.06%)1.58s1.61s
Bind Time0.77s (± 0.44%)0.78s (± 1.37%)+0.01s (+ 1.04%)0.76s0.81s
Check Time5.15s (± 1.68%)5.16s (± 1.21%)+0.01s (+ 0.25%)5.08s5.34s
Emit Time3.13s (± 2.71%)3.16s (± 1.56%)+0.03s (+ 1.02%)3.03s3.23s
Total Time10.65s (± 0.28%)10.70s (± 0.28%)+0.05s (+ 0.47%)10.62s10.78s
TFS - node (v8.9.0, x86)
Memory used182,569k (± 0.02%)182,124k (± 0.01%)-445k (- 0.24%)182,074k182,165k
Parse Time1.31s (± 1.19%)1.29s (± 0.76%)-0.02s (- 1.22%)1.28s1.32s
Bind Time0.71s (± 0.63%)0.71s (± 1.87%)+0.00s (+ 0.28%)0.70s0.76s
Check Time4.57s (± 0.44%)4.57s (± 0.73%)-0.00s (- 0.09%)4.52s4.68s
Emit Time2.94s (± 1.03%)2.94s (± 0.56%)0.00s ( 0.00%)2.91s2.97s
Total Time9.54s (± 0.43%)9.52s (± 0.52%)-0.02s (- 0.17%)9.45s9.66s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory4 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)
BenchmarkNameIterations
Current3657610
Baselinemaster10

@ahejlsberg
Copy link
MemberAuthor

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commentedFeb 2, 2020
edited
Loading

Heya@ahejlsberg, I've started to run the perf test suite on this PR at979bc6a. You can monitor the buildhere. It should now contribute to this PR's status checks.

Update:The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..36576

Metricmaster36576DeltaBestWorst
Angular - node (v10.16.3, x64)
Memory used356,434k (± 0.02%)357,890k (± 0.04%)+1,456k (+ 0.41%)357,408k358,092k
Parse Time1.62s (± 0.72%)1.61s (± 0.50%)-0.01s (- 0.43%)1.60s1.63s
Bind Time0.89s (± 0.45%)0.88s (± 1.02%)-0.02s (- 1.80%)0.85s0.90s
Check Time4.66s (± 0.59%)4.67s (± 0.74%)+0.00s (+ 0.09%)4.60s4.74s
Emit Time5.21s (± 0.89%)5.18s (± 0.59%)-0.03s (- 0.54%)5.12s5.25s
Total Time12.38s (± 0.60%)12.33s (± 0.48%)-0.05s (- 0.40%)12.22s12.46s
Monaco - node (v10.16.3, x64)
Memory used364,597k (± 0.02%)364,121k (± 0.01%)-475k (- 0.13%)364,049k364,155k
Parse Time1.25s (± 0.54%)1.24s (± 0.40%)-0.00s (- 0.24%)1.23s1.25s
Bind Time0.77s (± 0.61%)0.77s (± 0.44%)+0.00s (+ 0.39%)0.77s0.78s
Check Time4.68s (± 0.34%)4.67s (± 0.37%)-0.01s (- 0.17%)4.63s4.71s
Emit Time2.88s (± 0.48%)2.88s (± 0.48%)-0.00s (- 0.03%)2.87s2.93s
Total Time9.58s (± 0.32%)9.57s (± 0.22%)-0.01s (- 0.09%)9.52s9.61s
TFS - node (v10.16.3, x64)
Memory used324,237k (± 0.08%)323,331k (± 0.01%)-906k (- 0.28%)323,219k323,417k
Parse Time0.95s (± 0.47%)0.94s (± 0.63%)-0.00s (- 0.42%)0.93s0.96s
Bind Time0.75s (± 1.18%)0.75s (± 1.27%)-0.00s (- 0.13%)0.72s0.76s
Check Time4.22s (± 0.70%)4.22s (± 0.50%)+0.00s (+ 0.07%)4.19s4.28s
Emit Time3.02s (± 0.97%)3.01s (± 1.06%)-0.01s (- 0.43%)2.94s3.08s
Total Time8.93s (± 0.54%)8.92s (± 0.50%)-0.01s (- 0.12%)8.84s9.06s
Angular - node (v12.1.0, x64)
Memory used332,341k (± 0.02%)333,674k (± 0.08%)+1,333k (+ 0.40%)332,645k334,011k
Parse Time1.56s (± 0.77%)1.57s (± 0.80%)+0.00s (+ 0.13%)1.54s1.59s
Bind Time0.86s (± 0.57%)0.87s (± 0.64%)+0.00s (+ 0.46%)0.86s0.88s
Check Time4.58s (± 0.49%)4.59s (± 0.79%)+0.01s (+ 0.11%)4.52s4.70s
Emit Time5.42s (± 0.95%)5.43s (± 1.44%)+0.00s (+ 0.06%)5.34s5.66s
Total Time12.44s (± 0.49%)12.45s (± 0.88%)+0.01s (+ 0.08%)12.27s12.75s
Monaco - node (v12.1.0, x64)
Memory used344,559k (± 0.02%)344,019k (± 0.02%)-540k (- 0.16%)343,905k344,141k
Parse Time1.22s (± 0.56%)1.21s (± 0.58%)-0.01s (- 0.41%)1.20s1.23s
Bind Time0.75s (± 0.74%)0.76s (± 1.53%)+0.01s (+ 1.07%)0.74s0.78s
Check Time4.53s (± 0.43%)4.55s (± 0.61%)+0.01s (+ 0.24%)4.48s4.61s
Emit Time2.95s (± 0.63%)2.94s (± 0.79%)-0.01s (- 0.37%)2.91s3.01s
Total Time9.45s (± 0.37%)9.45s (± 0.44%)+0.00s (+ 0.02%)9.39s9.54s
TFS - node (v12.1.0, x64)
Memory used306,396k (± 0.02%)305,557k (± 0.01%)-840k (- 0.27%)305,445k305,653k
Parse Time0.94s (± 0.85%)0.94s (± 0.43%)-0.00s (- 0.32%)0.93s0.95s
Bind Time0.70s (± 0.79%)0.71s (± 1.16%)+0.01s (+ 0.71%)0.69s0.73s
Check Time4.18s (± 0.58%)4.19s (± 0.35%)+0.01s (+ 0.14%)4.16s4.23s
Emit Time3.08s (± 0.71%)3.09s (± 0.80%)+0.01s (+ 0.36%)3.04s3.15s
Total Time8.91s (± 0.48%)8.93s (± 0.43%)+0.02s (+ 0.20%)8.86s9.04s
Angular - node (v8.9.0, x64)
Memory used351,498k (± 0.02%)352,895k (± 0.02%)+1,397k (+ 0.40%)352,751k353,093k
Parse Time2.09s (± 0.24%)2.11s (± 0.27%)+0.02s (+ 0.72%)2.10s2.12s
Bind Time0.92s (± 0.90%)0.93s (± 0.73%)+0.02s (+ 1.97%)0.92s0.95s
Check Time5.43s (± 0.59%)5.46s (± 0.60%)+0.03s (+ 0.50%)5.35s5.53s
Emit Time6.23s (± 0.68%)6.19s (± 0.67%)-0.04s (- 0.66%)6.08s6.28s
Total Time14.67s (± 0.46%)14.69s (± 0.50%)+0.02s (+ 0.14%)14.44s14.84s
Monaco - node (v8.9.0, x64)
Memory used362,833k (± 0.01%)362,287k (± 0.01%)-546k (- 0.15%)362,166k362,381k
Parse Time1.56s (± 0.62%)1.56s (± 0.44%)-0.00s (- 0.19%)1.55s1.58s
Bind Time0.95s (± 0.65%)0.95s (± 0.50%)-0.00s (- 0.21%)0.94s0.96s
Check Time5.44s (± 1.41%)5.36s (± 1.23%)-0.08s (- 1.47%)5.29s5.57s
Emit Time3.26s (± 4.29%)3.33s (± 3.00%)+0.07s (+ 2.06%)3.05s3.46s
Total Time11.21s (± 0.75%)11.19s (± 0.44%)-0.02s (- 0.18%)11.03s11.27s
TFS - node (v8.9.0, x64)
Memory used323,393k (± 0.01%)322,492k (± 0.01%)-901k (- 0.28%)322,423k322,606k
Parse Time1.26s (± 0.46%)1.26s (± 0.44%)-0.01s (- 0.40%)1.25s1.27s
Bind Time0.76s (± 0.68%)0.76s (± 0.65%)-0.00s (- 0.40%)0.75s0.77s
Check Time4.83s (± 0.43%)4.81s (± 0.60%)-0.03s (- 0.52%)4.74s4.86s
Emit Time3.19s (± 1.29%)3.20s (± 0.51%)+0.01s (+ 0.19%)3.17s3.24s
Total Time10.04s (± 0.58%)10.02s (± 0.43%)-0.03s (- 0.25%)9.92s10.09s
Angular - node (v8.9.0, x86)
Memory used199,825k (± 0.02%)200,582k (± 0.03%)+757k (+ 0.38%)200,500k200,728k
Parse Time2.04s (± 0.91%)2.03s (± 0.52%)-0.00s (- 0.20%)2.01s2.06s
Bind Time1.05s (± 0.79%)1.05s (± 0.78%)+0.01s (+ 0.76%)1.04s1.08s
Check Time5.00s (± 0.39%)4.91s (± 0.61%)-0.09s (- 1.78%)4.84s4.97s
Emit Time6.14s (± 1.66%)6.00s (± 1.44%)-0.14s (- 2.36%)5.90s6.24s
Total Time14.22s (± 0.78%)13.99s (± 0.56%)-0.23s (- 1.61%)13.88s14.24s
Monaco - node (v8.9.0, x86)
Memory used203,721k (± 0.02%)203,422k (± 0.02%)-299k (- 0.15%)203,336k203,515k
Parse Time1.60s (± 0.68%)1.60s (± 0.39%)-0.00s (- 0.19%)1.58s1.61s
Bind Time0.77s (± 0.44%)0.77s (± 0.80%)+0.00s (+ 0.52%)0.76s0.78s
Check Time5.15s (± 1.68%)5.22s (± 1.51%)+0.07s (+ 1.46%)5.12s5.43s
Emit Time3.13s (± 2.71%)3.11s (± 2.76%)-0.02s (- 0.67%)2.84s3.26s
Total Time10.65s (± 0.28%)10.71s (± 0.48%)+0.06s (+ 0.54%)10.63s10.84s
TFS - node (v8.9.0, x86)
Memory used182,569k (± 0.02%)182,125k (± 0.02%)-444k (- 0.24%)182,058k182,176k
Parse Time1.31s (± 1.19%)1.30s (± 0.63%)-0.01s (- 0.61%)1.28s1.31s
Bind Time0.71s (± 0.63%)0.71s (± 0.63%)-0.00s (- 0.56%)0.70s0.72s
Check Time4.57s (± 0.44%)4.57s (± 0.57%)-0.00s (- 0.11%)4.51s4.65s
Emit Time2.94s (± 1.03%)2.95s (± 0.72%)+0.00s (+ 0.14%)2.88s2.98s
Total Time9.54s (± 0.43%)9.52s (± 0.22%)-0.01s (- 0.14%)9.46s9.57s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory4 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)
BenchmarkNameIterations
Current3657610
Baselinemaster10

@ahejlsbergahejlsberg added the ExperimentA fork with an experimental idea which might not make it into master labelFeb 5, 2020
@ahejlsberg
Copy link
MemberAuthor

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commentedFeb 29, 2020
edited
Loading

Heya@ahejlsberg, I've started to run the perf test suite on this PR at979bc6a. You can monitor the buildhere.

Update:The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..36576

Metricmaster36576DeltaBestWorst
Angular - node (v10.16.3, x64)
Memory used334,373k (± 0.02%)333,633k (± 0.05%)-740k (- 0.22%)333,127k333,851k
Parse Time1.62s (± 0.62%)1.62s (± 0.48%)-0.00s (- 0.06%)1.60s1.63s
Bind Time0.89s (± 0.65%)0.88s (± 1.05%)-0.01s (- 0.90%)0.86s0.90s
Check Time4.72s (± 0.59%)4.73s (± 0.47%)+0.01s (+ 0.25%)4.69s4.78s
Emit Time5.26s (± 0.44%)5.31s (± 0.96%)+0.05s (+ 0.86%)5.23s5.46s
Total Time12.49s (± 0.38%)12.54s (± 0.49%)+0.05s (+ 0.41%)12.43s12.68s
Monaco - node (v10.16.3, x64)
Memory used335,209k (± 0.01%)334,713k (± 0.02%)-496k (- 0.15%)334,598k334,847k
Parse Time1.25s (± 0.38%)1.25s (± 0.36%)-0.00s (- 0.08%)1.24s1.26s
Bind Time0.77s (± 0.61%)0.77s (± 0.47%)+0.00s (+ 0.52%)0.77s0.78s
Check Time4.71s (± 0.27%)4.72s (± 0.49%)+0.01s (+ 0.21%)4.68s4.77s
Emit Time2.91s (± 0.39%)2.92s (± 1.06%)+0.01s (+ 0.41%)2.88s2.99s
Total Time9.64s (± 0.25%)9.67s (± 0.48%)+0.03s (+ 0.27%)9.59s9.76s
TFS - node (v10.16.3, x64)
Memory used299,429k (± 0.01%)298,573k (± 0.02%)-856k (- 0.29%)298,451k298,694k
Parse Time0.93s (± 0.96%)0.94s (± 0.80%)+0.00s (+ 0.21%)0.92s0.95s
Bind Time0.75s (± 0.66%)0.74s (± 0.46%)-0.00s (- 0.40%)0.74s0.75s
Check Time4.26s (± 0.66%)4.27s (± 0.41%)+0.00s (+ 0.12%)4.23s4.32s
Emit Time3.02s (± 1.48%)3.06s (± 0.83%)+0.04s (+ 1.26%)2.98s3.11s
Total Time8.96s (± 0.50%)9.01s (± 0.47%)+0.04s (+ 0.46%)8.91s9.11s
material-ui - node (v10.16.3, x64)
Memory used488,909k (± 0.01%)480,831k (± 0.01%)-8,079k (- 1.65%)480,708k480,900k
Parse Time1.77s (± 0.51%)1.76s (± 0.51%)-0.00s (- 0.23%)1.74s1.78s
Bind Time0.68s (± 0.69%)0.69s (± 0.53%)+0.01s (+ 0.88%)0.68s0.69s
Check Time13.49s (± 0.45%)13.92s (± 0.54%)+0.43s (+ 3.20%)13.76s14.09s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time15.93s (± 0.39%)16.37s (± 0.42%)+0.43s (+ 2.70%)16.23s16.52s
Angular - node (v12.1.0, x64)
Memory used310,160k (± 0.02%)309,402k (± 0.03%)-758k (- 0.24%)309,268k309,545k
Parse Time1.57s (± 0.49%)1.56s (± 0.74%)-0.01s (- 0.89%)1.53s1.59s
Bind Time0.87s (± 0.79%)0.86s (± 0.79%)-0.00s (- 0.12%)0.85s0.88s
Check Time4.61s (± 0.56%)4.61s (± 0.61%)-0.00s (- 0.11%)4.57s4.71s
Emit Time5.47s (± 0.47%)5.43s (± 0.37%)-0.04s (- 0.77%)5.39s5.48s
Total Time12.52s (± 0.23%)12.46s (± 0.32%)-0.06s (- 0.45%)12.41s12.60s
Monaco - node (v12.1.0, x64)
Memory used315,202k (± 0.02%)314,700k (± 0.01%)-502k (- 0.16%)314,615k314,765k
Parse Time1.20s (± 0.39%)1.20s (± 0.70%)+0.00s (+ 0.08%)1.19s1.22s
Bind Time0.74s (± 1.10%)0.74s (± 0.63%)-0.00s (- 0.40%)0.73s0.75s
Check Time4.54s (± 0.39%)4.54s (± 0.37%)+0.00s (+ 0.04%)4.50s4.59s
Emit Time2.96s (± 0.83%)2.95s (± 0.65%)-0.01s (- 0.41%)2.91s2.99s
Total Time9.44s (± 0.35%)9.43s (± 0.29%)-0.01s (- 0.13%)9.38s9.50s
TFS - node (v12.1.0, x64)
Memory used281,719k (± 0.02%)280,837k (± 0.02%)-882k (- 0.31%)280,737k280,987k
Parse Time0.92s (± 0.75%)0.92s (± 1.08%)+0.01s (+ 0.55%)0.90s0.95s
Bind Time0.70s (± 1.17%)0.71s (± 0.52%)+0.00s (+ 0.28%)0.70s0.71s
Check Time4.16s (± 0.36%)4.16s (± 0.49%)+0.00s (+ 0.02%)4.10s4.21s
Emit Time3.08s (± 1.19%)3.08s (± 0.40%)+0.01s (+ 0.20%)3.05s3.10s
Total Time8.86s (± 0.52%)8.86s (± 0.22%)+0.01s (+ 0.10%)8.83s8.93s
material-ui - node (v12.1.0, x64)
Memory used466,274k (± 0.01%)457,835k (± 0.06%)-8,439k (- 1.81%)457,275k458,327k
Parse Time1.74s (± 0.64%)1.74s (± 0.43%)-0.01s (- 0.40%)1.72s1.75s
Bind Time0.62s (± 0.64%)0.62s (± 0.79%)+0.00s (+ 0.48%)0.61s0.63s
Check Time12.01s (± 0.43%)12.50s (± 0.88%)+0.49s (+ 4.10%)12.24s12.71s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time14.37s (± 0.42%)14.86s (± 0.75%)+0.48s (+ 3.37%)14.58s15.08s
Angular - node (v8.9.0, x64)
Memory used329,327k (± 0.01%)328,606k (± 0.01%)-721k (- 0.22%)328,509k328,671k
Parse Time2.11s (± 0.45%)2.10s (± 0.67%)-0.01s (- 0.43%)2.07s2.13s
Bind Time0.92s (± 0.72%)0.92s (± 0.52%)-0.00s (- 0.33%)0.90s0.92s
Check Time5.48s (± 0.43%)5.45s (± 0.60%)-0.02s (- 0.42%)5.41s5.58s
Emit Time6.26s (± 0.34%)6.17s (± 0.58%)-0.09s (- 1.42%)6.09s6.25s
Total Time14.77s (± 0.21%)14.64s (± 0.31%)-0.13s (- 0.86%)14.55s14.73s
Monaco - node (v8.9.0, x64)
Memory used333,567k (± 0.03%)332,968k (± 0.01%)-599k (- 0.18%)332,905k333,052k
Parse Time1.54s (± 0.50%)1.54s (± 0.40%)-0.00s (- 0.13%)1.53s1.55s
Bind Time0.89s (± 0.90%)0.89s (± 0.85%)+0.00s (+ 0.22%)0.88s0.91s
Check Time5.38s (± 0.35%)5.39s (± 0.43%)+0.01s (+ 0.19%)5.34s5.46s
Emit Time3.55s (± 0.56%)3.53s (± 0.61%)-0.01s (- 0.42%)3.48s3.58s
Total Time11.36s (± 0.30%)11.36s (± 0.26%)-0.00s (- 0.04%)11.29s11.41s
TFS - node (v8.9.0, x64)
Memory used298,796k (± 0.01%)297,945k (± 0.02%)-852k (- 0.28%)297,835k298,035k
Parse Time1.24s (± 0.40%)1.25s (± 0.29%)+0.01s (+ 0.72%)1.25s1.26s
Bind Time0.75s (± 0.80%)0.75s (± 0.49%)+0.00s (+ 0.13%)0.74s0.75s
Check Time4.80s (± 0.57%)4.80s (± 0.53%)-0.00s (- 0.00%)4.75s4.86s
Emit Time3.34s (± 0.96%)3.39s (± 1.07%)+0.06s (+ 1.68%)3.28s3.47s
Total Time10.13s (± 0.37%)10.19s (± 0.36%)+0.06s (+ 0.63%)10.12s10.28s
material-ui - node (v8.9.0, x64)
Memory used494,684k (± 0.01%)484,189k (± 0.01%)-10,494k (- 2.12%)484,044k484,299k
Parse Time2.10s (± 0.35%)2.10s (± 0.57%)-0.00s (- 0.14%)2.07s2.13s
Bind Time0.81s (± 0.61%)0.80s (± 1.49%)-0.00s (- 0.37%)0.78s0.83s
Check Time19.39s (± 0.28%)18.45s (± 1.26%)🟩-0.94s (- 4.82%)17.94s19.01s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time22.29s (± 0.25%)21.35s (± 1.10%)🟩-0.93s (- 4.19%)20.84s21.93s
Angular - node (v8.9.0, x86)
Memory used188,914k (± 0.03%)188,536k (± 0.03%)-378k (- 0.20%)188,450k188,684k
Parse Time2.04s (± 0.72%)2.05s (± 0.51%)+0.01s (+ 0.34%)2.02s2.07s
Bind Time1.06s (± 0.58%)1.07s (± 0.54%)+0.01s (+ 0.85%)1.06s1.08s
Check Time4.99s (± 0.33%)5.00s (± 0.30%)+0.01s (+ 0.20%)4.97s5.04s
Emit Time6.14s (± 1.18%)6.10s (± 1.28%)-0.04s (- 0.67%)6.00s6.39s
Total Time14.23s (± 0.56%)14.21s (± 0.66%)-0.02s (- 0.12%)14.10s14.56s
Monaco - node (v8.9.0, x86)
Memory used189,192k (± 0.01%)188,919k (± 0.02%)-273k (- 0.14%)188,829k189,007k
Parse Time1.58s (± 0.30%)1.58s (± 0.61%)+0.00s (+ 0.25%)1.57s1.61s
Bind Time0.76s (± 0.78%)0.76s (± 0.64%)-0.00s (- 0.13%)0.76s0.78s
Check Time5.28s (± 2.08%)5.34s (± 1.48%)+0.06s (+ 1.08%)5.16s5.48s
Emit Time3.02s (± 3.58%)2.96s (± 3.68%)-0.06s (- 1.86%)2.84s3.24s
Total Time10.63s (± 0.25%)10.64s (± 0.42%)+0.01s (+ 0.08%)10.56s10.77s
TFS - node (v8.9.0, x86)
Memory used170,420k (± 0.03%)169,921k (± 0.03%)-499k (- 0.29%)169,825k170,047k
Parse Time1.28s (± 0.47%)1.27s (± 0.39%)-0.00s (- 0.16%)1.26s1.28s
Bind Time0.71s (± 1.33%)0.71s (± 0.69%)-0.00s (- 0.14%)0.71s0.73s
Check Time4.58s (± 0.37%)4.58s (± 0.54%)0.00s ( 0.00%)4.54s4.65s
Emit Time2.94s (± 1.26%)2.96s (± 1.09%)+0.02s (+ 0.54%)2.88s3.04s
Total Time9.52s (± 0.47%)9.53s (± 0.45%)+0.01s (+ 0.13%)9.44s9.62s
material-ui - node (v8.9.0, x86)
Memory used277,184k (± 0.01%)271,968k (± 0.01%)-5,216k (- 1.88%)271,891k272,011k
Parse Time2.17s (± 0.46%)2.16s (± 0.42%)-0.02s (- 0.69%)2.14s2.18s
Bind Time0.68s (± 1.38%)0.68s (± 1.50%)+0.00s (+ 0.15%)0.66s0.71s
Check Time17.48s (± 0.47%)17.08s (± 0.62%)-0.41s (- 2.32%)16.85s17.28s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time20.33s (± 0.42%)19.92s (± 0.51%)-0.42s (- 2.05%)19.68s20.12s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory1 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)
BenchmarkNameIterations
Current3657610
Baselinemaster10

@ahejlsberg
Copy link
MemberAuthor

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commentedMar 5, 2020
edited
Loading

Heya@ahejlsberg, I've started to run the perf test suite on this PR atc7d3806. You can monitor the buildhere.

Update:The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..36576

Metricmaster36576DeltaBestWorst
Angular - node (v10.16.3, x64)
Memory used333,987k (± 0.02%)332,582k (± 0.02%)-1,405k (- 0.42%)332,397k332,756k
Parse Time1.62s (± 0.57%)1.62s (± 0.52%)-0.00s (- 0.06%)1.61s1.65s
Bind Time0.89s (± 1.08%)0.89s (± 1.14%)+0.00s (+ 0.00%)0.87s0.91s
Check Time4.73s (± 0.35%)4.73s (± 0.35%)+0.01s (+ 0.15%)4.70s4.77s
Emit Time5.32s (± 1.57%)5.30s (± 0.79%)-0.02s (- 0.30%)5.22s5.41s
Total Time12.56s (± 0.67%)12.54s (± 0.41%)-0.01s (- 0.10%)12.43s12.66s
Monaco - node (v10.16.3, x64)
Memory used335,330k (± 0.02%)334,721k (± 0.02%)-609k (- 0.18%)334,536k334,836k
Parse Time1.26s (± 0.71%)1.25s (± 0.48%)-0.00s (- 0.08%)1.24s1.27s
Bind Time0.78s (± 0.51%)0.77s (± 0.38%)-0.01s (- 0.90%)0.77s0.78s
Check Time4.72s (± 0.53%)4.72s (± 0.72%)-0.00s (- 0.08%)4.67s4.80s
Emit Time2.93s (± 0.52%)2.91s (± 0.50%)-0.02s (- 0.65%)2.89s2.94s
Total Time9.69s (± 0.36%)9.66s (± 0.44%)-0.03s (- 0.31%)9.59s9.78s
TFS - node (v10.16.3, x64)
Memory used299,503k (± 0.02%)298,771k (± 0.02%)-732k (- 0.24%)298,621k298,867k
Parse Time0.94s (± 0.47%)0.95s (± 0.49%)+0.01s (+ 0.85%)0.94s0.96s
Bind Time0.75s (± 0.78%)0.74s (± 0.50%)-0.00s (- 0.27%)0.74s0.75s
Check Time4.25s (± 0.43%)4.26s (± 0.52%)+0.01s (+ 0.28%)4.22s4.31s
Emit Time3.05s (± 0.75%)3.04s (± 0.80%)-0.01s (- 0.33%)3.00s3.10s
Total Time8.99s (± 0.47%)8.99s (± 0.33%)+0.01s (+ 0.07%)8.95s9.09s
material-ui - node (v10.16.3, x64)
Memory used488,631k (± 0.02%)457,696k (± 0.01%)🟩-30,935k (- 6.33%)457,546k457,798k
Parse Time1.78s (± 0.43%)1.77s (± 0.41%)-0.00s (- 0.23%)1.76s1.79s
Bind Time0.68s (± 1.03%)0.68s (± 0.98%)-0.00s (- 0.15%)0.67s0.69s
Check Time13.55s (± 0.60%)13.58s (± 0.68%)+0.03s (+ 0.24%)13.45s13.88s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time16.00s (± 0.50%)16.03s (± 0.60%)+0.03s (+ 0.19%)15.90s16.35s
Angular - node (v12.1.0, x64)
Memory used309,880k (± 0.02%)308,346k (± 0.06%)-1,535k (- 0.50%)307,602k308,657k
Parse Time1.57s (± 0.73%)1.57s (± 0.68%)-0.00s (- 0.06%)1.55s1.59s
Bind Time0.87s (± 0.94%)0.87s (± 0.74%)+0.00s (+ 0.23%)0.86s0.89s
Check Time4.61s (± 0.46%)4.65s (± 1.24%)+0.03s (+ 0.67%)4.58s4.85s
Emit Time5.45s (± 0.29%)5.44s (± 0.91%)-0.00s (- 0.04%)5.35s5.57s
Total Time12.50s (± 0.26%)12.53s (± 0.82%)+0.03s (+ 0.20%)12.38s12.87s
Monaco - node (v12.1.0, x64)
Memory used315,292k (± 0.02%)314,686k (± 0.02%)-607k (- 0.19%)314,581k314,898k
Parse Time1.21s (± 0.53%)1.21s (± 0.64%)-0.00s (- 0.08%)1.19s1.23s
Bind Time0.74s (± 0.70%)0.74s (± 1.05%)+0.00s (+ 0.27%)0.73s0.76s
Check Time4.55s (± 0.47%)4.54s (± 0.33%)-0.01s (- 0.18%)4.52s4.59s
Emit Time2.95s (± 0.70%)2.95s (± 0.58%)-0.00s (- 0.14%)2.92s2.98s
Total Time9.45s (± 0.36%)9.44s (± 0.21%)-0.01s (- 0.14%)9.40s9.49s
TFS - node (v12.1.0, x64)
Memory used281,772k (± 0.02%)281,035k (± 0.02%)-737k (- 0.26%)280,967k281,194k
Parse Time0.93s (± 0.97%)0.93s (± 0.86%)+0.00s (+ 0.32%)0.91s0.95s
Bind Time0.70s (± 1.14%)0.71s (± 1.47%)+0.01s (+ 0.85%)0.69s0.73s
Check Time4.18s (± 0.61%)4.17s (± 0.29%)-0.01s (- 0.29%)4.13s4.19s
Emit Time3.08s (± 0.64%)3.07s (± 0.95%)-0.01s (- 0.32%)3.02s3.17s
Total Time8.89s (± 0.36%)8.88s (± 0.35%)-0.01s (- 0.15%)8.84s8.99s
material-ui - node (v12.1.0, x64)
Memory used466,066k (± 0.01%)435,105k (± 0.02%)🟩-30,962k (- 6.64%)434,923k435,236k
Parse Time1.75s (± 0.57%)1.75s (± 0.50%)0.00s ( 0.00%)1.74s1.78s
Bind Time0.63s (± 0.64%)0.63s (± 1.07%)-0.00s (- 0.32%)0.61s0.64s
Check Time12.04s (± 0.46%)12.04s (± 0.53%)-0.00s (- 0.03%)11.86s12.15s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time14.42s (± 0.37%)14.42s (± 0.45%)-0.01s (- 0.03%)14.24s14.51s
Angular - node (v8.9.0, x64)
Memory used329,073k (± 0.02%)327,660k (± 0.01%)-1,413k (- 0.43%)327,621k327,693k
Parse Time2.12s (± 0.32%)2.10s (± 0.32%)-0.01s (- 0.61%)2.09s2.12s
Bind Time0.93s (± 1.02%)0.92s (± 0.52%)-0.01s (- 1.08%)0.91s0.93s
Check Time5.54s (± 0.56%)5.49s (± 0.64%)-0.05s (- 0.90%)5.44s5.58s
Emit Time6.25s (± 0.73%)6.19s (± 0.85%)-0.06s (- 0.90%)6.02s6.26s
Total Time14.83s (± 0.33%)14.70s (± 0.46%)-0.13s (- 0.86%)14.55s14.83s
Monaco - node (v8.9.0, x64)
Memory used333,594k (± 0.01%)332,965k (± 0.02%)-629k (- 0.19%)332,850k333,072k
Parse Time1.54s (± 0.65%)1.55s (± 0.49%)+0.00s (+ 0.13%)1.53s1.56s
Bind Time0.91s (± 0.89%)0.91s (± 1.16%)-0.00s (- 0.33%)0.89s0.93s
Check Time5.39s (± 0.80%)5.40s (± 0.47%)+0.00s (+ 0.00%)5.33s5.45s
Emit Time3.51s (± 0.75%)3.52s (± 0.55%)+0.01s (+ 0.23%)3.48s3.56s
Total Time11.36s (± 0.56%)11.37s (± 0.28%)+0.01s (+ 0.05%)11.29s11.43s
TFS - node (v8.9.0, x64)
Memory used298,949k (± 0.01%)298,117k (± 0.02%)-833k (- 0.28%)297,972k298,261k
Parse Time1.25s (± 0.60%)1.25s (± 0.39%)+0.00s (+ 0.08%)1.24s1.26s
Bind Time0.75s (± 1.00%)0.75s (± 0.69%)+0.00s (+ 0.27%)0.74s0.76s
Check Time4.87s (± 1.61%)4.89s (± 1.39%)+0.02s (+ 0.43%)4.80s5.10s
Emit Time3.27s (± 2.48%)3.30s (± 2.31%)+0.03s (+ 0.98%)3.12s3.43s
Total Time10.14s (± 0.37%)10.20s (± 0.51%)+0.06s (+ 0.55%)10.10s10.30s
material-ui - node (v8.9.0, x64)
Memory used494,433k (± 0.01%)460,215k (± 0.01%)🟩-34,218k (- 6.92%)460,118k460,314k
Parse Time2.10s (± 0.74%)2.11s (± 0.75%)+0.01s (+ 0.38%)2.08s2.15s
Bind Time0.81s (± 0.99%)0.81s (± 0.58%)-0.00s (- 0.25%)0.80s0.82s
Check Time19.52s (± 0.49%)17.73s (± 0.67%)🟩-1.79s (- 9.17%)17.44s17.98s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time22.43s (± 0.44%)20.65s (± 0.60%)🟩-1.78s (- 7.94%)20.36s20.88s
Angular - node (v8.9.0, x86)
Memory used188,756k (± 0.02%)188,053k (± 0.02%)-703k (- 0.37%)187,957k188,118k
Parse Time2.05s (± 0.63%)2.04s (± 0.61%)-0.01s (- 0.54%)2.02s2.07s
Bind Time1.07s (± 0.52%)1.08s (± 0.21%)+0.01s (+ 0.65%)1.07s1.08s
Check Time5.03s (± 0.50%)5.01s (± 0.57%)-0.01s (- 0.26%)4.96s5.11s
Emit Time6.12s (± 0.62%)6.10s (± 0.68%)-0.03s (- 0.42%)6.05s6.22s
Total Time14.28s (± 0.42%)14.23s (± 0.46%)-0.05s (- 0.33%)14.11s14.45s
Monaco - node (v8.9.0, x86)
Memory used189,236k (± 0.02%)188,924k (± 0.03%)-313k (- 0.17%)188,768k188,995k
Parse Time1.59s (± 0.81%)1.59s (± 0.61%)-0.00s (- 0.25%)1.57s1.61s
Bind Time0.77s (± 0.76%)0.77s (± 0.47%)-0.00s (- 0.13%)0.76s0.77s
Check Time5.32s (± 1.66%)5.41s (± 1.47%)+0.09s (+ 1.75%)5.21s5.53s
Emit Time3.05s (± 3.71%)2.94s (± 2.57%)🟩-0.11s (- 3.48%)2.84s3.10s
Total Time10.73s (± 0.49%)10.71s (± 0.58%)-0.02s (- 0.20%)10.62s10.93s
TFS - node (v8.9.0, x86)
Memory used170,490k (± 0.02%)170,111k (± 0.02%)-380k (- 0.22%)170,041k170,182k
Parse Time1.29s (± 0.74%)1.29s (± 2.28%)+0.01s (+ 0.47%)1.27s1.41s
Bind Time0.71s (± 0.42%)0.72s (± 1.73%)+0.01s (+ 1.12%)0.70s0.76s
Check Time4.61s (± 0.52%)4.62s (± 0.77%)+0.00s (+ 0.04%)4.55s4.71s
Emit Time2.96s (± 0.99%)2.97s (± 1.08%)+0.01s (+ 0.34%)2.91s3.05s
Total Time9.57s (± 0.51%)9.60s (± 0.76%)+0.02s (+ 0.24%)9.49s9.77s
material-ui - node (v8.9.0, x86)
Memory used277,026k (± 0.01%)259,944k (± 0.01%)🟩-17,082k (- 6.17%)259,895k259,985k
Parse Time2.17s (± 0.48%)2.18s (± 0.62%)+0.01s (+ 0.60%)2.15s2.21s
Bind Time0.68s (± 0.44%)0.68s (± 1.30%)+0.01s (+ 0.88%)0.67s0.71s
Check Time17.81s (± 0.81%)16.18s (± 0.61%)🟩-1.64s (- 9.18%)16.00s16.45s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time20.66s (± 0.73%)19.04s (± 0.54%)🟩-1.61s (- 7.82%)18.82s19.30s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory1 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)
BenchmarkNameIterations
Current3657610
Baselinemaster10

@ahejlsberg
Copy link
MemberAuthor

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commentedMar 5, 2020
edited
Loading

Heya@ahejlsberg, I've started to run the perf test suite on this PR at61f0c7a. You can monitor the buildhere.

Update:The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..36576

Metricmaster36576DeltaBestWorst
Angular - node (v10.16.3, x64)
Memory used334,503k (± 0.02%)332,335k (± 0.03%)-2,168k (- 0.65%)332,166k332,613k
Parse Time1.63s (± 0.54%)1.63s (± 0.54%)-0.00s (- 0.18%)1.61s1.65s
Bind Time0.89s (± 0.75%)0.89s (± 0.75%)-0.00s (- 0.34%)0.87s0.90s
Check Time4.72s (± 0.47%)4.73s (± 0.29%)+0.01s (+ 0.23%)4.70s4.76s
Emit Time5.29s (± 0.37%)5.28s (± 0.78%)-0.01s (- 0.25%)5.21s5.41s
Total Time12.53s (± 0.29%)12.53s (± 0.41%)-0.00s (- 0.02%)12.44s12.68s
Monaco - node (v10.16.3, x64)
Memory used335,321k (± 0.01%)334,341k (± 0.01%)-980k (- 0.29%)334,234k334,470k
Parse Time1.25s (± 0.32%)1.26s (± 0.93%)+0.01s (+ 0.80%)1.23s1.29s
Bind Time0.77s (± 0.67%)0.78s (± 0.60%)+0.01s (+ 1.17%)0.77s0.79s
Check Time4.72s (± 0.24%)4.72s (± 0.52%)+0.00s (+ 0.06%)4.66s4.77s
Emit Time2.91s (± 0.65%)2.95s (± 1.19%)+0.04s (+ 1.37%)2.87s3.03s
Total Time9.65s (± 0.30%)9.72s (± 0.52%)+0.06s (+ 0.65%)9.57s9.80s
TFS - node (v10.16.3, x64)
Memory used299,490k (± 0.02%)298,517k (± 0.03%)-973k (- 0.32%)298,405k298,818k
Parse Time0.95s (± 0.50%)0.95s (± 0.68%)+0.01s (+ 0.53%)0.94s0.97s
Bind Time0.75s (± 0.66%)0.75s (± 0.63%)+0.00s (+ 0.54%)0.74s0.76s
Check Time4.26s (± 0.41%)4.27s (± 0.68%)+0.02s (+ 0.38%)4.22s4.34s
Emit Time3.06s (± 0.78%)3.06s (± 0.56%)-0.00s (- 0.13%)3.03s3.11s
Total Time9.01s (± 0.38%)9.03s (± 0.42%)+0.02s (+ 0.23%)8.95s9.12s
material-ui - node (v10.16.3, x64)
Memory used489,056k (± 0.01%)452,761k (± 0.01%)🟩-36,294k (- 7.42%)452,682k452,885k
Parse Time1.77s (± 0.53%)1.78s (± 0.58%)+0.01s (+ 0.51%)1.76s1.80s
Bind Time0.68s (± 0.87%)0.68s (± 0.87%)0.00s ( 0.00%)0.67s0.70s
Check Time13.59s (± 0.73%)13.62s (± 0.54%)+0.03s (+ 0.22%)13.47s13.77s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time16.04s (± 0.59%)16.08s (± 0.49%)+0.04s (+ 0.24%)15.91s16.25s
Angular - node (v12.1.0, x64)
Memory used310,249k (± 0.03%)308,180k (± 0.02%)-2,069k (- 0.67%)308,027k308,348k
Parse Time1.58s (± 0.68%)1.58s (± 0.42%)-0.00s (- 0.13%)1.57s1.59s
Bind Time0.87s (± 1.19%)0.88s (± 0.86%)+0.00s (+ 0.46%)0.86s0.89s
Check Time4.61s (± 0.66%)4.63s (± 0.54%)+0.02s (+ 0.39%)4.59s4.68s
Emit Time5.46s (± 0.41%)5.44s (± 0.50%)-0.02s (- 0.29%)5.38s5.50s
Total Time12.53s (± 0.45%)12.52s (± 0.33%)-0.00s (- 0.01%)12.46s12.63s
Monaco - node (v12.1.0, x64)
Memory used315,274k (± 0.02%)314,234k (± 0.02%)-1,040k (- 0.33%)314,131k314,405k
Parse Time1.21s (± 0.89%)1.21s (± 0.83%)+0.01s (+ 0.50%)1.19s1.24s
Bind Time0.74s (± 0.60%)0.74s (± 0.70%)+0.00s (+ 0.14%)0.73s0.75s
Check Time4.53s (± 0.45%)4.56s (± 0.45%)+0.03s (+ 0.68%)4.49s4.59s
Emit Time2.95s (± 0.38%)2.95s (± 0.61%)+0.00s (+ 0.17%)2.92s2.98s
Total Time9.42s (± 0.24%)9.47s (± 0.37%)+0.05s (+ 0.52%)9.35s9.53s
TFS - node (v12.1.0, x64)
Memory used281,749k (± 0.02%)280,739k (± 0.01%)-1,010k (- 0.36%)280,670k280,793k
Parse Time0.93s (± 0.78%)0.94s (± 1.02%)+0.00s (+ 0.43%)0.92s0.96s
Bind Time0.70s (± 0.57%)0.70s (± 0.70%)+0.00s (+ 0.72%)0.69s0.71s
Check Time4.16s (± 0.57%)4.19s (± 0.27%)+0.03s (+ 0.82%)4.17s4.22s
Emit Time3.08s (± 1.07%)3.10s (± 0.59%)+0.02s (+ 0.52%)3.06s3.13s
Total Time8.87s (± 0.58%)8.93s (± 0.29%)+0.05s (+ 0.61%)8.86s8.98s
material-ui - node (v12.1.0, x64)
Memory used466,377k (± 0.05%)430,118k (± 0.05%)🟩-36,259k (- 7.77%)429,318k430,357k
Parse Time1.75s (± 0.52%)1.75s (± 0.43%)+0.00s (+ 0.17%)1.74s1.77s
Bind Time0.63s (± 0.91%)0.63s (± 0.83%)-0.00s (- 0.16%)0.62s0.64s
Check Time12.06s (± 1.05%)12.05s (± 0.69%)-0.01s (- 0.09%)11.88s12.23s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time14.44s (± 0.88%)14.43s (± 0.59%)-0.01s (- 0.06%)14.27s14.61s
Angular - node (v8.9.0, x64)
Memory used329,450k (± 0.02%)327,386k (± 0.02%)-2,064k (- 0.63%)327,207k327,510k
Parse Time2.10s (± 0.65%)2.11s (± 0.63%)+0.00s (+ 0.19%)2.09s2.14s
Bind Time0.92s (± 1.35%)0.92s (± 0.90%)+0.00s (+ 0.11%)0.91s0.94s
Check Time5.50s (± 0.43%)5.49s (± 0.56%)-0.01s (- 0.16%)5.42s5.54s
Emit Time6.23s (± 0.62%)6.13s (± 1.11%)-0.10s (- 1.56%)5.96s6.31s
Total Time14.75s (± 0.39%)14.65s (± 0.53%)-0.10s (- 0.64%)14.52s14.93s
Monaco - node (v8.9.0, x64)
Memory used333,643k (± 0.02%)332,507k (± 0.02%)-1,136k (- 0.34%)332,412k332,620k
Parse Time1.54s (± 0.43%)1.54s (± 0.43%)+0.00s (+ 0.20%)1.53s1.56s
Bind Time0.91s (± 0.93%)0.91s (± 1.22%)-0.00s (- 0.22%)0.89s0.93s
Check Time5.41s (± 0.46%)5.40s (± 0.55%)-0.01s (- 0.28%)5.34s5.46s
Emit Time3.52s (± 0.30%)3.52s (± 0.75%)+0.00s (+ 0.09%)3.49s3.60s
Total Time11.37s (± 0.23%)11.37s (± 0.53%)-0.01s (- 0.06%)11.27s11.52s
TFS - node (v8.9.0, x64)
Memory used298,941k (± 0.02%)297,899k (± 0.02%)-1,041k (- 0.35%)297,809k298,026k
Parse Time1.25s (± 0.69%)1.25s (± 0.36%)0.00s ( 0.00%)1.24s1.26s
Bind Time0.75s (± 0.46%)0.75s (± 0.63%)+0.00s (+ 0.40%)0.74s0.76s
Check Time4.86s (± 1.96%)4.89s (± 1.69%)+0.03s (+ 0.62%)4.75s5.06s
Emit Time3.31s (± 2.82%)3.28s (± 2.67%)-0.03s (- 0.94%)3.10s3.42s
Total Time10.18s (± 0.38%)10.18s (± 0.53%)0.00s ( 0.00%)9.99s10.27s
material-ui - node (v8.9.0, x64)
Memory used494,869k (± 0.01%)455,217k (± 0.01%)🟩-39,652k (- 8.01%)455,120k455,307k
Parse Time2.11s (± 0.59%)2.10s (± 0.56%)-0.01s (- 0.33%)2.08s2.14s
Bind Time0.81s (± 1.16%)0.82s (± 1.08%)+0.01s (+ 0.86%)0.80s0.84s
Check Time19.57s (± 0.73%)17.54s (± 0.79%)🟩-2.04s (-10.41%)17.21s17.93s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time22.49s (± 0.65%)20.45s (± 0.67%)🟩-2.04s (- 9.05%)20.12s20.84s
Angular - node (v8.9.0, x86)
Memory used188,972k (± 0.03%)187,938k (± 0.02%)-1,034k (- 0.55%)187,846k188,042k
Parse Time2.05s (± 0.62%)2.05s (± 0.83%)+0.00s (+ 0.24%)2.02s2.10s
Bind Time1.08s (± 1.21%)1.07s (± 0.52%)-0.01s (- 0.65%)1.06s1.09s
Check Time5.05s (± 0.70%)5.02s (± 0.59%)-0.03s (- 0.63%)4.96s5.07s
Emit Time6.14s (± 0.77%)6.15s (± 1.14%)+0.01s (+ 0.18%)6.03s6.38s
Total Time14.32s (± 0.41%)14.29s (± 0.46%)-0.03s (- 0.20%)14.16s14.45s
Monaco - node (v8.9.0, x86)
Memory used189,278k (± 0.02%)188,728k (± 0.03%)-551k (- 0.29%)188,625k188,918k
Parse Time1.59s (± 0.59%)1.58s (± 0.70%)-0.00s (- 0.19%)1.57s1.62s
Bind Time0.77s (± 0.78%)0.76s (± 0.99%)-0.00s (- 0.13%)0.75s0.79s
Check Time5.33s (± 1.87%)5.38s (± 1.57%)+0.06s (+ 1.03%)5.21s5.54s
Emit Time3.02s (± 3.70%)2.96s (± 2.64%)-0.06s (- 1.99%)2.84s3.09s
Total Time10.70s (± 0.66%)10.69s (± 0.43%)-0.01s (- 0.09%)10.62s10.84s
TFS - node (v8.9.0, x86)
Memory used170,497k (± 0.02%)169,954k (± 0.02%)-543k (- 0.32%)169,889k170,016k
Parse Time1.28s (± 0.73%)1.29s (± 0.74%)+0.00s (+ 0.16%)1.27s1.31s
Bind Time0.71s (± 0.81%)0.72s (± 1.17%)+0.01s (+ 0.84%)0.71s0.74s
Check Time4.62s (± 0.48%)4.61s (± 0.58%)-0.01s (- 0.17%)4.55s4.68s
Emit Time2.97s (± 1.43%)2.99s (± 1.42%)+0.02s (+ 0.84%)2.87s3.10s
Total Time9.59s (± 0.64%)9.61s (± 0.75%)+0.02s (+ 0.23%)9.41s9.74s
material-ui - node (v8.9.0, x86)
Memory used277,258k (± 0.01%)257,471k (± 0.01%)🟩-19,787k (- 7.14%)257,427k257,526k
Parse Time2.18s (± 0.51%)2.18s (± 0.53%)+0.00s (+ 0.05%)2.16s2.21s
Bind Time0.68s (± 1.24%)0.68s (± 0.95%)-0.00s (- 0.15%)0.67s0.70s
Check Time17.65s (± 0.56%)16.15s (± 0.95%)🟩-1.50s (- 8.49%)15.82s16.50s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time20.51s (± 0.51%)19.02s (± 0.84%)🟩-1.50s (- 7.31%)18.66s19.37s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory1 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)
BenchmarkNameIterations
Current3657610
Baselinemaster10

@ahejlsberg
Copy link
MemberAuthor

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commentedMar 6, 2020
edited
Loading

Heya@ahejlsberg, I've started to run the perf test suite on this PR at50de2db. You can monitor the buildhere.

Update:The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..36576

Metricmaster36576DeltaBestWorst
Angular - node (v10.16.3, x64)
Memory used334,478k (± 0.02%)332,437k (± 0.01%)-2,041k (- 0.61%)332,364k332,537k
Parse Time1.63s (± 0.87%)1.62s (± 0.61%)-0.01s (- 0.31%)1.61s1.65s
Bind Time0.89s (± 0.65%)0.89s (± 0.83%)0.00s ( 0.00%)0.87s0.91s
Check Time4.73s (± 0.54%)4.73s (± 0.34%)+0.00s (+ 0.02%)4.72s4.78s
Emit Time5.29s (± 0.79%)5.29s (± 0.86%)+0.00s (+ 0.04%)5.18s5.36s
Total Time12.54s (± 0.61%)12.54s (± 0.51%)-0.00s (- 0.04%)12.41s12.70s
Monaco - node (v10.16.3, x64)
Memory used335,292k (± 0.02%)334,292k (± 0.02%)-1,001k (- 0.30%)334,142k334,442k
Parse Time1.26s (± 0.76%)1.26s (± 0.91%)+0.00s (+ 0.16%)1.24s1.30s
Bind Time0.77s (± 0.62%)0.77s (± 0.47%)+0.00s (+ 0.13%)0.77s0.78s
Check Time4.71s (± 0.60%)4.70s (± 0.33%)-0.00s (- 0.02%)4.68s4.74s
Emit Time2.90s (± 0.62%)2.92s (± 0.73%)+0.01s (+ 0.45%)2.88s2.99s
Total Time9.64s (± 0.44%)9.65s (± 0.40%)+0.01s (+ 0.13%)9.61s9.80s
TFS - node (v10.16.3, x64)
Memory used299,482k (± 0.01%)298,476k (± 0.02%)-1,005k (- 0.34%)298,390k298,584k
Parse Time0.95s (± 0.71%)0.95s (± 0.38%)-0.00s (- 0.11%)0.94s0.95s
Bind Time0.74s (± 0.92%)0.74s (± 0.91%)-0.00s (- 0.13%)0.73s0.76s
Check Time4.25s (± 0.48%)4.26s (± 0.64%)+0.01s (+ 0.16%)4.21s4.32s
Emit Time3.05s (± 1.04%)3.06s (± 0.73%)+0.01s (+ 0.26%)3.02s3.12s
Total Time9.00s (± 0.61%)9.01s (± 0.38%)+0.01s (+ 0.07%)8.93s9.06s
material-ui - node (v10.16.3, x64)
Memory used488,973k (± 0.02%)452,718k (± 0.01%)🟩-36,255k (- 7.41%)452,609k452,787k
Parse Time1.77s (± 0.38%)1.77s (± 0.42%)-0.00s (- 0.17%)1.75s1.78s
Bind Time0.68s (± 0.70%)0.69s (± 0.72%)+0.00s (+ 0.44%)0.68s0.70s
Check Time13.60s (± 0.68%)13.45s (± 0.48%)-0.15s (- 1.10%)13.34s13.61s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time16.05s (± 0.61%)15.91s (± 0.41%)-0.14s (- 0.90%)15.79s16.07s
Angular - node (v12.1.0, x64)
Memory used310,088k (± 0.09%)308,077k (± 0.07%)-2,010k (- 0.65%)307,187k308,327k
Parse Time1.57s (± 0.48%)1.57s (± 0.68%)-0.01s (- 0.32%)1.55s1.59s
Bind Time0.86s (± 0.67%)0.87s (± 0.57%)+0.00s (+ 0.35%)0.86s0.88s
Check Time4.66s (± 0.67%)4.64s (± 1.19%)-0.02s (- 0.45%)4.54s4.81s
Emit Time5.47s (± 1.46%)5.46s (± 0.90%)-0.01s (- 0.18%)5.38s5.60s
Total Time12.57s (± 0.74%)12.54s (± 0.85%)-0.03s (- 0.24%)12.40s12.88s
Monaco - node (v12.1.0, x64)
Memory used315,274k (± 0.01%)314,239k (± 0.02%)-1,035k (- 0.33%)314,042k314,363k
Parse Time1.21s (± 0.73%)1.21s (± 0.70%)-0.00s (- 0.08%)1.19s1.22s
Bind Time0.74s (± 0.88%)0.74s (± 0.91%)+0.01s (+ 0.81%)0.73s0.76s
Check Time4.55s (± 0.59%)4.53s (± 0.47%)-0.02s (- 0.37%)4.48s4.59s
Emit Time2.96s (± 0.81%)2.95s (± 1.03%)-0.01s (- 0.27%)2.88s3.04s
Total Time9.46s (± 0.50%)9.44s (± 0.21%)-0.02s (- 0.20%)9.39s9.47s
TFS - node (v12.1.0, x64)
Memory used281,779k (± 0.02%)280,750k (± 0.02%)-1,029k (- 0.37%)280,662k280,945k
Parse Time0.93s (± 0.63%)0.93s (± 0.80%)+0.01s (+ 0.65%)0.92s0.95s
Bind Time0.71s (± 0.96%)0.70s (± 1.17%)-0.01s (- 1.27%)0.68s0.72s
Check Time4.16s (± 0.21%)4.18s (± 0.33%)+0.02s (+ 0.53%)4.16s4.21s
Emit Time3.09s (± 0.84%)3.06s (± 0.75%)-0.02s (- 0.78%)2.99s3.10s
Total Time8.88s (± 0.28%)8.87s (± 0.41%)-0.00s (- 0.02%)8.78s8.94s
material-ui - node (v12.1.0, x64)
Memory used466,474k (± 0.01%)430,175k (± 0.02%)🟩-36,299k (- 7.78%)429,963k430,314k
Parse Time1.76s (± 0.49%)1.76s (± 0.54%)-0.01s (- 0.34%)1.73s1.77s
Bind Time0.63s (± 1.06%)0.62s (± 0.95%)-0.01s (- 1.42%)0.61s0.63s
Check Time12.08s (± 0.57%)11.99s (± 0.37%)-0.09s (- 0.72%)11.87s12.09s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time14.47s (± 0.47%)14.37s (± 0.30%)-0.10s (- 0.71%)14.24s14.45s
Angular - node (v8.9.0, x64)
Memory used329,462k (± 0.01%)327,422k (± 0.01%)-2,040k (- 0.62%)327,370k327,539k
Parse Time2.11s (± 0.70%)2.10s (± 0.45%)-0.02s (- 0.76%)2.07s2.12s
Bind Time0.92s (± 0.64%)0.92s (± 0.74%)0.00s ( 0.00%)0.91s0.94s
Check Time5.51s (± 0.60%)5.51s (± 0.86%)-0.01s (- 0.09%)5.43s5.61s
Emit Time6.24s (± 0.76%)6.22s (± 0.75%)-0.02s (- 0.29%)6.11s6.34s
Total Time14.79s (± 0.46%)14.75s (± 0.53%)-0.04s (- 0.24%)14.56s14.98s
Monaco - node (v8.9.0, x64)
Memory used333,604k (± 0.02%)332,519k (± 0.02%)-1,085k (- 0.33%)332,403k332,662k
Parse Time1.54s (± 0.45%)1.54s (± 0.45%)+0.00s (+ 0.00%)1.53s1.56s
Bind Time0.91s (± 1.22%)0.91s (± 1.02%)+0.00s (+ 0.55%)0.89s0.93s
Check Time5.38s (± 0.26%)5.41s (± 0.52%)+0.03s (+ 0.61%)5.36s5.47s
Emit Time3.51s (± 0.65%)3.52s (± 0.33%)+0.01s (+ 0.14%)3.49s3.54s
Total Time11.34s (± 0.33%)11.38s (± 0.29%)+0.04s (+ 0.34%)11.32s11.47s
TFS - node (v8.9.0, x64)
Memory used298,934k (± 0.02%)297,857k (± 0.02%)-1,077k (- 0.36%)297,758k297,974k
Parse Time1.25s (± 0.42%)1.25s (± 0.65%)-0.00s (- 0.08%)1.23s1.27s
Bind Time0.75s (± 0.74%)0.74s (± 0.60%)-0.01s (- 0.80%)0.73s0.75s
Check Time4.89s (± 1.15%)4.90s (± 1.50%)+0.02s (+ 0.33%)4.77s5.06s
Emit Time3.32s (± 2.22%)3.30s (± 2.56%)-0.02s (- 0.57%)3.07s3.41s
Total Time10.21s (± 0.40%)10.19s (± 0.32%)-0.01s (- 0.14%)10.12s10.26s
material-ui - node (v8.9.0, x64)
Memory used494,840k (± 0.01%)455,188k (± 0.02%)🟩-39,651k (- 8.01%)455,003k455,317k
Parse Time2.11s (± 0.49%)2.10s (± 0.61%)-0.02s (- 0.71%)2.08s2.14s
Bind Time0.80s (± 1.10%)0.81s (± 0.96%)+0.01s (+ 1.38%)0.80s0.83s
Check Time19.58s (± 0.44%)17.55s (± 0.44%)🟩-2.02s (-10.34%)17.36s17.72s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time22.49s (± 0.39%)20.46s (± 0.33%)🟩-2.03s (- 9.01%)20.33s20.61s
Angular - node (v8.9.0, x86)
Memory used189,024k (± 0.03%)187,930k (± 0.03%)-1,094k (- 0.58%)187,799k188,034k
Parse Time2.05s (± 0.56%)2.05s (± 0.46%)-0.01s (- 0.34%)2.03s2.06s
Bind Time1.07s (± 0.58%)1.07s (± 0.81%)+0.00s (+ 0.28%)1.06s1.10s
Check Time5.02s (± 0.59%)5.01s (± 0.56%)-0.01s (- 0.20%)4.94s5.09s
Emit Time6.15s (± 0.81%)6.11s (± 1.03%)-0.04s (- 0.67%)6.02s6.30s
Total Time14.29s (± 0.40%)14.24s (± 0.47%)-0.05s (- 0.38%)14.09s14.41s
Monaco - node (v8.9.0, x86)
Memory used189,254k (± 0.02%)188,733k (± 0.01%)-521k (- 0.28%)188,682k188,806k
Parse Time1.59s (± 0.77%)1.59s (± 0.48%)-0.00s (- 0.19%)1.56s1.60s
Bind Time0.78s (± 1.30%)0.76s (± 0.64%)-0.01s (- 1.55%)0.76s0.78s
Check Time5.33s (± 1.93%)5.35s (± 1.76%)+0.02s (+ 0.38%)5.09s5.48s
Emit Time3.01s (± 3.55%)2.98s (± 3.25%)-0.03s (- 0.93%)2.85s3.20s
Total Time10.70s (± 0.33%)10.68s (± 0.27%)-0.02s (- 0.17%)10.61s10.75s
TFS - node (v8.9.0, x86)
Memory used170,482k (± 0.02%)169,923k (± 0.02%)-559k (- 0.33%)169,849k170,025k
Parse Time1.29s (± 0.76%)1.28s (± 0.84%)-0.01s (- 0.54%)1.27s1.32s
Bind Time0.71s (± 0.96%)0.72s (± 1.06%)+0.00s (+ 0.14%)0.70s0.74s
Check Time4.62s (± 0.99%)4.62s (± 0.60%)-0.00s (- 0.04%)4.56s4.67s
Emit Time3.01s (± 2.97%)3.01s (± 2.60%)-0.00s (- 0.13%)2.88s3.29s
Total Time9.63s (± 0.98%)9.63s (± 0.91%)-0.01s (- 0.06%)9.48s9.91s
material-ui - node (v8.9.0, x86)
Memory used277,280k (± 0.02%)257,504k (± 0.02%)🟩-19,776k (- 7.13%)257,409k257,574k
Parse Time2.18s (± 0.34%)2.18s (± 0.78%)-0.00s (- 0.05%)2.15s2.24s
Bind Time0.68s (± 0.82%)0.68s (± 0.66%)0.00s ( 0.00%)0.67s0.69s
Check Time17.71s (± 0.54%)16.01s (± 0.69%)🟩-1.70s (- 9.61%)15.85s16.38s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time20.57s (± 0.48%)18.86s (± 0.60%)🟩-1.70s (- 8.28%)18.69s19.24s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory1 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)
BenchmarkNameIterations
Current3657610
Baselinemaster10

@ahejlsbergahejlsberg removed the ExperimentA fork with an experimental idea which might not make it into master labelMar 6, 2020
@ahejlsberg
Copy link
MemberAuthor

@amcasey This improves material-ui memory usage by ~8% and performance by ~1%.

SlurpTheo and jpdenford reacted with thumbs up emojiamcasey and kleanlins reacted with heart emoji

@ahejlsbergahejlsberg added this to theTypeScript 3.9.0 milestoneMar 6, 2020
Copy link
Member

@amcaseyamcasey left a comment

Choose a reason for hiding this comment

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

Some questions for my own edification.

function createReplacementMapper(source: Type, target: Type, baseMapper: TypeMapper): TypeMapper {
return t => t === source ? target : baseMapper(t);
function addTypeMapping(mapper: TypeMapper | undefined, source: TypeParameter, target: Type) {
return mapper && mapper.kind === TypeMapKind.Simple && mapper.source2 === mapper.target2 ?
Copy link
Member

Choose a reason for hiding this comment

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

I'm getting mixed up. When you combine two maps, you look in the first map first and then, if you find something, do you stop looking or apply the second map to the first target? From the handling of composite maps ingetMappedType it seems like it might be the latter, but this appears to do the former for unary maps?

Copy link
MemberAuthor

Choose a reason for hiding this comment

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

The particular test here is to see if the second source/target pair in the simple mapper is unused (recall, when source and target are the same, we have a no-op). If so, we create a new simple mapper with both source/target pairs in use.

One added twist with composite mappers is that the first mapper may map to some type that the second mapper further maps. For example, the first mapper might map fromT toU[] and the second mapper fromU tostring. This also explains why we directly call thegetMappedType with the first mapper, but then callinstantiateType with the second one.

Copy link
MemberAuthor

Choose a reason for hiding this comment

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

I should add, in theaddTypeMapping case, we actually don't care about the ability for the second mapping to affect the first mapping, which is why we can do the simple mapper optimization.

Copy link
Member

Choose a reason for hiding this comment

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

So maps are combined by composition, but we happen to know that this particular composition is equivalent to concatenation?

case TypeMapKind.Array:
return makeArrayTypeMapper(baseMapper.sources, map(baseMapper.targets, (t, i) => baseMapper.sources[i] === source ? target : t));
}
return makeFunctionTypeMapper(t => t === source ? target : getMappedType(t, baseMapper));
Copy link
Member

Choose a reason for hiding this comment

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

Depending on how badly I've mixed up composite maps (see my question above), this seems like it might be equivalent to a composite map withsource-to-target on the left hand side?

Copy link
MemberAuthor

@ahejlsbergahejlsbergMar 7, 2020
edited
Loading

Choose a reason for hiding this comment

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

Not quite. We don't want the second mapping to be applied to the result of the first. We basically just want to replace one of the mappings in the second mapper, which we can do by putting a check in front of the second mapper.

Copy link
Member

Choose a reason for hiding this comment

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

How come this transformation (concatenation?) wasn't interesting enough to become aTypeMapKind?

@ahejlsberg
Copy link
MemberAuthor

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commentedMar 8, 2020
edited
Loading

Heya@ahejlsberg, I've started to run the perf test suite on this PR atce9ddf3. You can monitor the buildhere.

Update:The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..36576

Metricmaster36576DeltaBestWorst
Angular - node (v10.16.3, x64)
Memory used334,431k (± 0.02%)332,896k (± 0.02%)-1,535k (- 0.46%)332,702k333,062k
Parse Time1.63s (± 0.64%)1.63s (± 0.51%)-0.01s (- 0.49%)1.61s1.64s
Bind Time0.89s (± 1.18%)0.89s (± 0.99%)-0.00s (- 0.34%)0.87s0.90s
Check Time4.72s (± 0.27%)4.74s (± 0.63%)+0.02s (+ 0.38%)4.68s4.80s
Emit Time5.31s (± 1.08%)5.29s (± 0.40%)-0.02s (- 0.36%)5.25s5.35s
Total Time12.55s (± 0.53%)12.54s (± 0.35%)-0.01s (- 0.11%)12.44s12.65s
Monaco - node (v10.16.3, x64)
Memory used335,279k (± 0.02%)334,414k (± 0.02%)-865k (- 0.26%)334,299k334,564k
Parse Time1.26s (± 0.59%)1.26s (± 0.72%)-0.00s (- 0.08%)1.24s1.28s
Bind Time0.78s (± 0.38%)0.78s (± 0.61%)-0.00s (- 0.13%)0.77s0.79s
Check Time4.74s (± 0.44%)4.73s (± 0.27%)-0.01s (- 0.27%)4.70s4.75s
Emit Time2.91s (± 0.88%)2.94s (± 0.97%)+0.02s (+ 0.72%)2.87s3.01s
Total Time9.69s (± 0.44%)9.69s (± 0.43%)+0.00s (+ 0.04%)9.62s9.79s
TFS - node (v10.16.3, x64)
Memory used299,493k (± 0.02%)298,317k (± 0.02%)-1,176k (- 0.39%)298,233k298,444k
Parse Time0.95s (± 0.71%)0.95s (± 0.62%)0.00s ( 0.00%)0.94s0.96s
Bind Time0.75s (± 0.69%)0.74s (± 0.90%)-0.01s (- 0.80%)0.72s0.75s
Check Time4.25s (± 0.32%)4.25s (± 0.53%)-0.00s (- 0.05%)4.21s4.31s
Emit Time3.06s (± 0.89%)3.04s (± 0.79%)-0.02s (- 0.52%)2.99s3.09s
Total Time9.01s (± 0.38%)8.99s (± 0.44%)-0.02s (- 0.27%)8.93s9.11s
material-ui - node (v10.16.3, x64)
Memory used488,968k (± 0.02%)456,326k (± 0.02%)🟩-32,642k (- 6.68%)456,146k456,493k
Parse Time1.78s (± 0.51%)1.78s (± 0.46%)-0.00s (- 0.22%)1.76s1.79s
Bind Time0.68s (± 1.00%)0.68s (± 0.98%)-0.00s (- 0.29%)0.67s0.70s
Check Time13.68s (± 0.69%)13.52s (± 0.84%)-0.15s (- 1.10%)13.30s13.79s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time16.14s (± 0.61%)15.98s (± 0.74%)-0.16s (- 0.97%)15.75s16.27s
Angular - node (v12.1.0, x64)
Memory used310,212k (± 0.02%)308,632k (± 0.07%)-1,580k (- 0.51%)307,764k308,851k
Parse Time1.58s (± 0.76%)1.59s (± 0.98%)+0.01s (+ 0.63%)1.55s1.62s
Bind Time0.87s (± 0.86%)0.87s (± 0.76%)+0.00s (+ 0.35%)0.85s0.88s
Check Time4.62s (± 0.43%)4.62s (± 0.76%)+0.00s (+ 0.02%)4.55s4.74s
Emit Time5.47s (± 1.08%)5.49s (± 1.00%)+0.02s (+ 0.37%)5.42s5.69s
Total Time12.53s (± 0.56%)12.57s (± 0.46%)+0.04s (+ 0.32%)12.47s12.72s
Monaco - node (v12.1.0, x64)
Memory used315,285k (± 0.02%)314,330k (± 0.03%)-956k (- 0.30%)314,207k314,557k
Parse Time1.22s (± 0.66%)1.21s (± 0.70%)-0.01s (- 0.57%)1.19s1.23s
Bind Time0.74s (± 0.64%)0.74s (± 0.80%)+0.00s (+ 0.13%)0.73s0.76s
Check Time4.55s (± 0.46%)4.57s (± 0.61%)+0.02s (+ 0.42%)4.52s4.65s
Emit Time2.95s (± 0.72%)2.96s (± 1.09%)+0.02s (+ 0.54%)2.92s3.06s
Total Time9.46s (± 0.29%)9.49s (± 0.61%)+0.03s (+ 0.31%)9.41s9.68s
TFS - node (v12.1.0, x64)
Memory used281,728k (± 0.03%)280,643k (± 0.02%)-1,086k (- 0.39%)280,502k280,788k
Parse Time0.94s (± 0.55%)0.93s (± 1.01%)-0.01s (- 0.85%)0.92s0.96s
Bind Time0.71s (± 1.07%)0.71s (± 0.94%)+0.01s (+ 0.99%)0.70s0.73s
Check Time4.19s (± 0.55%)4.19s (± 0.77%)+0.00s (+ 0.07%)4.13s4.26s
Emit Time3.07s (± 0.59%)3.08s (± 0.99%)+0.01s (+ 0.33%)3.02s3.17s
Total Time8.90s (± 0.43%)8.92s (± 0.63%)+0.01s (+ 0.15%)8.82s9.08s
material-ui - node (v12.1.0, x64)
Memory used466,490k (± 0.02%)433,798k (± 0.01%)🟩-32,692k (- 7.01%)433,684k433,864k
Parse Time1.76s (± 0.65%)1.76s (± 0.63%)0.00s ( 0.00%)1.74s1.78s
Bind Time0.63s (± 1.44%)0.63s (± 0.80%)-0.00s (- 0.64%)0.62s0.64s
Check Time12.14s (± 0.68%)12.00s (± 0.59%)-0.13s (- 1.08%)11.87s12.18s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time14.53s (± 0.59%)14.39s (± 0.48%)-0.13s (- 0.93%)14.26s14.56s
Angular - node (v8.9.0, x64)
Memory used329,484k (± 0.01%)327,948k (± 0.02%)-1,535k (- 0.47%)327,802k328,139k
Parse Time2.12s (± 0.44%)2.11s (± 0.50%)-0.01s (- 0.61%)2.09s2.13s
Bind Time0.92s (± 0.84%)0.92s (± 0.81%)-0.00s (- 0.22%)0.90s0.94s
Check Time5.49s (± 0.59%)5.51s (± 0.69%)+0.02s (+ 0.42%)5.40s5.56s
Emit Time6.25s (± 0.99%)6.22s (± 0.70%)-0.03s (- 0.45%)6.14s6.33s
Total Time14.77s (± 0.48%)14.75s (± 0.49%)-0.02s (- 0.14%)14.62s14.93s
Monaco - node (v8.9.0, x64)
Memory used333,604k (± 0.01%)332,659k (± 0.02%)-945k (- 0.28%)332,544k332,784k
Parse Time1.54s (± 0.65%)1.54s (± 0.61%)-0.00s (- 0.26%)1.53s1.57s
Bind Time0.91s (± 1.15%)0.91s (± 0.97%)+0.00s (+ 0.33%)0.89s0.93s
Check Time5.42s (± 0.54%)5.42s (± 0.72%)+0.01s (+ 0.17%)5.36s5.54s
Emit Time3.52s (± 0.54%)3.53s (± 0.52%)+0.01s (+ 0.34%)3.49s3.56s
Total Time11.39s (± 0.36%)11.41s (± 0.42%)+0.02s (+ 0.14%)11.34s11.58s
TFS - node (v8.9.0, x64)
Memory used298,964k (± 0.02%)297,751k (± 0.02%)-1,212k (- 0.41%)297,663k297,881k
Parse Time1.25s (± 0.52%)1.25s (± 0.38%)+0.00s (+ 0.08%)1.24s1.26s
Bind Time0.75s (± 0.99%)0.75s (± 0.74%)-0.00s (- 0.27%)0.74s0.76s
Check Time4.82s (± 0.68%)4.93s (± 1.67%)+0.11s (+ 2.34%)4.78s5.15s
Emit Time3.36s (± 0.78%)3.24s (± 2.71%)🟩-0.12s (- 3.54%)3.05s3.41s
Total Time10.18s (± 0.41%)10.18s (± 0.45%)-0.01s (- 0.06%)10.08s10.29s
material-ui - node (v8.9.0, x64)
Memory used494,797k (± 0.01%)458,845k (± 0.01%)🟩-35,953k (- 7.27%)458,764k458,937k
Parse Time2.11s (± 0.72%)2.11s (± 0.62%)-0.00s (- 0.05%)2.08s2.14s
Bind Time0.80s (± 1.24%)0.81s (± 1.09%)+0.01s (+ 1.37%)0.79s0.83s
Check Time19.52s (± 0.79%)17.68s (± 0.38%)🟩-1.84s (- 9.43%)17.50s17.79s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time22.43s (± 0.70%)20.60s (± 0.34%)🟩-1.83s (- 8.18%)20.42s20.74s
Angular - node (v8.9.0, x86)
Memory used189,007k (± 0.03%)188,231k (± 0.02%)-776k (- 0.41%)188,153k188,369k
Parse Time2.06s (± 0.53%)2.06s (± 0.33%)-0.00s (- 0.24%)2.04s2.07s
Bind Time1.07s (± 0.54%)1.07s (± 0.71%)+0.00s (+ 0.09%)1.06s1.09s
Check Time5.06s (± 0.69%)5.04s (± 0.57%)-0.02s (- 0.38%)4.97s5.11s
Emit Time6.16s (± 1.21%)6.13s (± 0.53%)-0.03s (- 0.49%)6.03s6.18s
Total Time14.36s (± 0.58%)14.30s (± 0.37%)-0.06s (- 0.38%)14.15s14.41s
Monaco - node (v8.9.0, x86)
Memory used189,285k (± 0.03%)188,759k (± 0.01%)-525k (- 0.28%)188,720k188,797k
Parse Time1.60s (± 0.98%)1.59s (± 0.77%)-0.01s (- 0.44%)1.57s1.62s
Bind Time0.77s (± 0.58%)0.77s (± 0.84%)+0.00s (+ 0.00%)0.75s0.78s
Check Time5.37s (± 1.98%)5.42s (± 1.48%)+0.05s (+ 0.91%)5.23s5.55s
Emit Time3.00s (± 4.05%)2.95s (± 3.67%)-0.05s (- 1.77%)2.78s3.17s
Total Time10.73s (± 0.48%)10.72s (± 0.53%)-0.01s (- 0.08%)10.59s10.83s
TFS - node (v8.9.0, x86)
Memory used170,449k (± 0.02%)169,876k (± 0.02%)-574k (- 0.34%)169,800k169,935k
Parse Time1.29s (± 0.87%)1.29s (± 1.06%)+0.00s (+ 0.15%)1.26s1.33s
Bind Time0.72s (± 0.97%)0.71s (± 0.56%)-0.01s (- 1.11%)0.70s0.72s
Check Time4.67s (± 0.86%)4.60s (± 0.54%)-0.08s (- 1.65%)4.54s4.67s
Emit Time2.98s (± 1.90%)2.95s (± 0.99%)-0.03s (- 0.91%)2.85s3.00s
Total Time9.65s (± 0.90%)9.55s (± 0.46%)-0.10s (- 1.07%)9.40s9.62s
material-ui - node (v8.9.0, x86)
Memory used277,263k (± 0.02%)259,285k (± 0.02%)🟩-17,978k (- 6.48%)259,198k259,349k
Parse Time2.19s (± 0.57%)2.18s (± 0.44%)-0.01s (- 0.46%)2.16s2.20s
Bind Time0.69s (± 1.77%)0.68s (± 0.54%)-0.01s (- 1.89%)0.67s0.68s
Check Time17.77s (± 0.80%)16.11s (± 0.63%)🟩-1.66s (- 9.37%)15.94s16.32s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time20.64s (± 0.72%)18.96s (± 0.56%)🟩-1.68s (- 8.15%)18.81s19.19s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory1 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)
BenchmarkNameIterations
Current3657610
Baselinemaster10

@ahejlsberg
Copy link
MemberAuthor

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commentedMar 8, 2020
edited
Loading

Heya@ahejlsberg, I've started to run the perf test suite on this PR at30e7a18. You can monitor the buildhere.

Update:The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..36576

Metricmaster36576DeltaBestWorst
Angular - node (v10.16.3, x64)
Memory used334,431k (± 0.02%)332,950k (± 0.03%)-1,481k (- 0.44%)332,772k333,170k
Parse Time1.63s (± 0.64%)1.63s (± 0.52%)-0.00s (- 0.24%)1.61s1.64s
Bind Time0.89s (± 1.18%)0.89s (± 0.79%)-0.00s (- 0.22%)0.88s0.91s
Check Time4.72s (± 0.27%)4.73s (± 0.55%)+0.01s (+ 0.25%)4.68s4.78s
Emit Time5.31s (± 1.08%)5.30s (± 0.54%)-0.01s (- 0.21%)5.24s5.36s
Total Time12.55s (± 0.53%)12.55s (± 0.47%)-0.00s (- 0.01%)12.43s12.68s
Monaco - node (v10.16.3, x64)
Memory used335,279k (± 0.02%)334,365k (± 0.02%)-914k (- 0.27%)334,231k334,543k
Parse Time1.26s (± 0.59%)1.26s (± 0.77%)+0.00s (+ 0.08%)1.24s1.28s
Bind Time0.78s (± 0.38%)0.78s (± 0.57%)-0.00s (- 0.00%)0.77s0.79s
Check Time4.74s (± 0.44%)4.72s (± 0.69%)-0.01s (- 0.27%)4.65s4.80s
Emit Time2.91s (± 0.88%)2.94s (± 1.05%)+0.03s (+ 0.89%)2.88s3.03s
Total Time9.69s (± 0.44%)9.70s (± 0.57%)+0.01s (+ 0.08%)9.59s9.80s
TFS - node (v10.16.3, x64)
Memory used299,493k (± 0.02%)298,342k (± 0.02%)-1,151k (- 0.38%)298,225k298,470k
Parse Time0.95s (± 0.71%)0.95s (± 0.62%)0.00s ( 0.00%)0.94s0.97s
Bind Time0.75s (± 0.69%)0.74s (± 1.02%)-0.00s (- 0.53%)0.73s0.76s
Check Time4.25s (± 0.32%)4.26s (± 0.48%)+0.01s (+ 0.24%)4.22s4.30s
Emit Time3.06s (± 0.89%)3.06s (± 0.92%)-0.00s (- 0.10%)2.98s3.11s
Total Time9.01s (± 0.38%)9.02s (± 0.55%)+0.01s (+ 0.08%)8.91s9.14s
material-ui - node (v10.16.3, x64)
Memory used488,968k (± 0.02%)454,042k (± 0.01%)🟩-34,926k (- 7.14%)453,952k454,139k
Parse Time1.78s (± 0.51%)1.78s (± 0.32%)-0.00s (- 0.06%)1.77s1.79s
Bind Time0.68s (± 1.00%)0.69s (± 0.65%)+0.00s (+ 0.44%)0.68s0.70s
Check Time13.68s (± 0.69%)13.50s (± 0.91%)-0.17s (- 1.26%)13.29s13.78s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time16.14s (± 0.61%)15.97s (± 0.77%)-0.17s (- 1.03%)15.76s16.25s
Angular - node (v12.1.0, x64)
Memory used310,212k (± 0.02%)308,760k (± 0.04%)-1,452k (- 0.47%)308,535k308,985k
Parse Time1.58s (± 0.76%)1.59s (± 0.59%)+0.01s (+ 0.44%)1.57s1.61s
Bind Time0.87s (± 0.86%)0.87s (± 1.04%)+0.00s (+ 0.23%)0.85s0.89s
Check Time4.62s (± 0.43%)4.63s (± 0.44%)+0.01s (+ 0.24%)4.58s4.66s
Emit Time5.47s (± 1.08%)5.45s (± 0.79%)-0.02s (- 0.44%)5.37s5.55s
Total Time12.53s (± 0.56%)12.53s (± 0.54%)+0.00s (+ 0.00%)12.40s12.67s
Monaco - node (v12.1.0, x64)
Memory used315,285k (± 0.02%)314,335k (± 0.01%)-950k (- 0.30%)314,251k314,418k
Parse Time1.22s (± 0.66%)1.21s (± 0.91%)-0.01s (- 0.90%)1.19s1.23s
Bind Time0.74s (± 0.64%)0.74s (± 0.70%)-0.00s (- 0.27%)0.73s0.76s
Check Time4.55s (± 0.46%)4.55s (± 0.31%)-0.00s (- 0.07%)4.52s4.58s
Emit Time2.95s (± 0.72%)2.94s (± 0.53%)-0.01s (- 0.20%)2.90s2.97s
Total Time9.46s (± 0.29%)9.44s (± 0.33%)-0.02s (- 0.25%)9.37s9.50s
TFS - node (v12.1.0, x64)
Memory used281,728k (± 0.03%)280,640k (± 0.02%)-1,088k (- 0.39%)280,515k280,720k
Parse Time0.94s (± 0.55%)0.93s (± 0.73%)-0.01s (- 0.74%)0.92s0.95s
Bind Time0.71s (± 1.07%)0.70s (± 0.79%)-0.00s (- 0.57%)0.69s0.71s
Check Time4.19s (± 0.55%)4.19s (± 0.51%)+0.00s (+ 0.05%)4.15s4.23s
Emit Time3.07s (± 0.59%)3.10s (± 0.98%)+0.03s (+ 1.14%)3.05s3.18s
Total Time8.90s (± 0.43%)8.93s (± 0.52%)+0.03s (+ 0.31%)8.84s9.06s
material-ui - node (v12.1.0, x64)
Memory used466,490k (± 0.02%)431,438k (± 0.02%)🟩-35,052k (- 7.51%)431,307k431,605k
Parse Time1.76s (± 0.65%)1.76s (± 0.63%)+0.00s (+ 0.06%)1.75s1.80s
Bind Time0.63s (± 1.44%)0.63s (± 1.70%)+0.00s (+ 0.32%)0.62s0.67s
Check Time12.14s (± 0.68%)12.08s (± 0.70%)-0.06s (- 0.46%)11.84s12.24s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time14.53s (± 0.59%)14.47s (± 0.63%)-0.05s (- 0.37%)14.22s14.69s
Angular - node (v8.9.0, x64)
Memory used329,484k (± 0.01%)327,944k (± 0.02%)-1,539k (- 0.47%)327,820k328,141k
Parse Time2.12s (± 0.44%)2.11s (± 0.45%)-0.01s (- 0.28%)2.09s2.13s
Bind Time0.92s (± 0.84%)0.92s (± 0.67%)+0.00s (+ 0.22%)0.91s0.93s
Check Time5.49s (± 0.59%)5.53s (± 0.66%)+0.04s (+ 0.80%)5.45s5.60s
Emit Time6.25s (± 0.99%)6.17s (± 1.17%)-0.07s (- 1.18%)5.99s6.32s
Total Time14.77s (± 0.48%)14.74s (± 0.56%)-0.03s (- 0.22%)14.48s14.94s
Monaco - node (v8.9.0, x64)
Memory used333,604k (± 0.01%)332,602k (± 0.01%)-1,003k (- 0.30%)332,525k332,707k
Parse Time1.54s (± 0.65%)1.54s (± 0.68%)-0.00s (- 0.06%)1.53s1.58s
Bind Time0.91s (± 1.15%)0.92s (± 1.67%)+0.01s (+ 0.66%)0.89s0.97s
Check Time5.42s (± 0.54%)5.41s (± 0.40%)-0.01s (- 0.13%)5.37s5.45s
Emit Time3.52s (± 0.54%)3.52s (± 0.50%)+0.01s (+ 0.17%)3.49s3.56s
Total Time11.39s (± 0.36%)11.39s (± 0.33%)-0.00s (- 0.02%)11.32s11.48s
TFS - node (v8.9.0, x64)
Memory used298,964k (± 0.02%)297,700k (± 0.02%)-1,263k (- 0.42%)297,631k297,807k
Parse Time1.25s (± 0.52%)1.25s (± 0.38%)+0.00s (+ 0.08%)1.24s1.26s
Bind Time0.75s (± 0.99%)0.75s (± 0.74%)-0.00s (- 0.27%)0.74s0.76s
Check Time4.82s (± 0.68%)4.83s (± 0.63%)+0.01s (+ 0.17%)4.76s4.90s
Emit Time3.36s (± 0.78%)3.35s (± 0.72%)-0.01s (- 0.18%)3.31s3.40s
Total Time10.18s (± 0.41%)10.19s (± 0.46%)+0.00s (+ 0.03%)10.07s10.30s
material-ui - node (v8.9.0, x64)
Memory used494,797k (± 0.01%)456,403k (± 0.01%)🟩-38,394k (- 7.76%)456,277k456,456k
Parse Time2.11s (± 0.72%)2.11s (± 0.39%)-0.00s (- 0.14%)2.09s2.13s
Bind Time0.80s (± 1.24%)0.81s (± 0.96%)+0.01s (+ 1.00%)0.79s0.83s
Check Time19.52s (± 0.79%)17.62s (± 1.02%)🟩-1.90s (- 9.73%)17.09s17.87s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time22.43s (± 0.70%)20.54s (± 0.88%)🟩-1.90s (- 8.45%)20.02s20.80s
Angular - node (v8.9.0, x86)
Memory used189,007k (± 0.03%)188,222k (± 0.02%)-785k (- 0.42%)188,133k188,287k
Parse Time2.06s (± 0.53%)2.06s (± 0.58%)+0.00s (+ 0.19%)2.04s2.09s
Bind Time1.07s (± 0.54%)1.08s (± 0.69%)+0.00s (+ 0.37%)1.06s1.09s
Check Time5.06s (± 0.69%)5.04s (± 0.53%)-0.03s (- 0.53%)4.95s5.08s
Emit Time6.16s (± 1.21%)6.14s (± 0.60%)-0.02s (- 0.29%)6.07s6.22s
Total Time14.36s (± 0.58%)14.32s (± 0.27%)-0.04s (- 0.27%)14.27s14.44s
Monaco - node (v8.9.0, x86)
Memory used189,285k (± 0.03%)188,746k (± 0.02%)-539k (- 0.28%)188,670k188,829k
Parse Time1.60s (± 0.98%)1.59s (± 0.63%)-0.01s (- 0.56%)1.57s1.61s
Bind Time0.77s (± 0.58%)0.76s (± 0.58%)-0.01s (- 0.78%)0.75s0.77s
Check Time5.37s (± 1.98%)5.36s (± 1.73%)-0.01s (- 0.19%)5.15s5.49s
Emit Time3.00s (± 4.05%)2.98s (± 3.21%)-0.02s (- 0.60%)2.84s3.21s
Total Time10.73s (± 0.48%)10.69s (± 0.41%)-0.04s (- 0.37%)10.61s10.77s
TFS - node (v8.9.0, x86)
Memory used170,449k (± 0.02%)169,887k (± 0.03%)-563k (- 0.33%)169,769k170,011k
Parse Time1.29s (± 0.87%)1.29s (± 0.87%)-0.00s (- 0.00%)1.27s1.32s
Bind Time0.72s (± 0.97%)0.71s (± 0.52%)-0.00s (- 0.56%)0.71s0.72s
Check Time4.67s (± 0.86%)4.63s (± 0.62%)-0.04s (- 0.92%)4.56s4.68s
Emit Time2.98s (± 1.90%)3.06s (± 2.72%)+0.08s (+ 2.69%)2.91s3.26s
Total Time9.65s (± 0.90%)9.69s (± 1.00%)+0.04s (+ 0.37%)9.48s9.95s
material-ui - node (v8.9.0, x86)
Memory used277,263k (± 0.02%)258,108k (± 0.02%)🟩-19,156k (- 6.91%)258,026k258,227k
Parse Time2.19s (± 0.57%)2.17s (± 0.46%)-0.01s (- 0.55%)2.15s2.20s
Bind Time0.69s (± 1.77%)0.68s (± 1.11%)-0.01s (- 0.73%)0.67s0.70s
Check Time17.77s (± 0.80%)16.06s (± 0.50%)🟩-1.71s (- 9.63%)15.83s16.18s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time20.64s (± 0.72%)18.92s (± 0.41%)🟩-1.73s (- 8.37%)18.68s19.03s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory1 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)
BenchmarkNameIterations
Current3657610
Baselinemaster10

Copy link
Member

@weswighamweswigham left a comment

Choose a reason for hiding this comment

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

Does it make sense to recognize theidentityMapper singleton in prepend/append/merge and short-circuit the construction of a composite mapper, if it's found?


function makeBinaryTypeMapper(source1: Type, target1: Type, source2: Type, target2: Type) {
return (t: Type) => t === source1 ? target1 : t === source2 ? target2 : t;
function getMappedType(type: Type, mapper: TypeMapper): Type {
Copy link
Member

Choose a reason for hiding this comment

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

I kinda-sorta wanna preemptively make this a loop rather than a recursive function to better optimize the recursive cases, but... it's not strictly required.

Copy link
MemberAuthor

Choose a reason for hiding this comment

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

I looked at that, but just makes the code more complex for no appreciable gain.

alexwakeman reacted with thumbs up emoji
@ahejlsberg
Copy link
MemberAuthor

@weswigham Easier to just get rid of theidentityMapper! 😄

@ahejlsbergahejlsberg merged commit6856c01 intomasterMar 11, 2020
@jakebaileyjakebailey deleted the typeMappersAsObjects branchNovember 7, 2022 17:35
@microsoftmicrosoft locked asresolvedand limited conversation to collaboratorsOct 21, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.

Reviewers

@weswighamweswighamweswigham approved these changes

@RyanCavanaughRyanCavanaughAwaiting requested review from RyanCavanaugh

+1 more reviewer

@amcaseyamcaseyamcasey left review comments

Reviewers whose approvals may not affect merge requirements

Assignees

@ahejlsbergahejlsberg

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ahejlsberg@typescript-bot@weswigham@amcasey

[8]ページ先頭

©2009-2025 Movatter.jp