Skip to content

Conversation

ahejlsberg
Copy link
Member

Fixes #40995.

@andrewbranch
Copy link
Member

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 13, 2020

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..41084

Metric master 41084 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 349,757k (± 0.02%) 350,307k (± 0.02%) +550k (+ 0.16%) 350,151k 350,434k
Parse Time 2.01s (± 0.80%) 1.99s (± 0.45%) -0.01s (- 0.70%) 1.97s 2.01s
Bind Time 0.82s (± 1.07%) 0.84s (± 0.69%) +0.01s (+ 1.70%) 0.83s 0.85s
Check Time 4.94s (± 0.54%) 4.99s (± 0.50%) +0.05s (+ 0.93%) 4.93s 5.04s
Emit Time 5.19s (± 0.41%) 5.23s (± 0.44%) +0.04s (+ 0.87%) 5.20s 5.31s
Total Time 12.96s (± 0.34%) 13.05s (± 0.34%) +0.09s (+ 0.67%) 12.96s 13.15s
Monaco - node (v10.16.3, x64)
Memory used 354,351k (± 0.02%) 354,379k (± 0.02%) +27k (+ 0.01%) 354,215k 354,517k
Parse Time 1.57s (± 0.57%) 1.56s (± 0.83%) -0.00s (- 0.13%) 1.54s 1.60s
Bind Time 0.71s (± 0.56%) 0.72s (± 1.17%) +0.01s (+ 1.41%) 0.71s 0.74s
Check Time 5.07s (± 0.54%) 5.11s (± 0.37%) +0.04s (+ 0.81%) 5.08s 5.15s
Emit Time 2.76s (± 0.93%) 2.77s (± 0.66%) +0.01s (+ 0.25%) 2.73s 2.81s
Total Time 10.11s (± 0.37%) 10.17s (± 0.41%) +0.06s (+ 0.57%) 10.07s 10.25s
TFS - node (v10.16.3, x64)
Memory used 307,640k (± 0.04%) 307,634k (± 0.02%) -6k (- 0.00%) 307,506k 307,788k
Parse Time 1.22s (± 0.76%) 1.22s (± 0.60%) 0.00s ( 0.00%) 1.21s 1.24s
Bind Time 0.66s (± 1.37%) 0.68s (± 0.88%) +0.02s (+ 2.27%) 0.66s 0.69s
Check Time 4.57s (± 0.94%) 4.60s (± 0.53%) +0.04s (+ 0.81%) 4.55s 4.66s
Emit Time 2.90s (± 1.72%) 2.93s (± 1.51%) +0.04s (+ 1.21%) 2.78s 3.00s
Total Time 9.35s (± 0.59%) 9.43s (± 0.51%) +0.09s (+ 0.92%) 9.29s 9.50s
material-ui - node (v10.16.3, x64)
Memory used 489,125k (± 0.02%) 491,814k (± 0.02%) +2,690k (+ 0.55%) 491,663k 492,014k
Parse Time 1.99s (± 0.54%) 1.98s (± 0.34%) -0.01s (- 0.75%) 1.96s 1.99s
Bind Time 0.65s (± 0.90%) 0.65s (± 0.51%) +0.00s (+ 0.46%) 0.64s 0.66s
Check Time 13.42s (± 0.51%) 13.63s (± 0.98%) +0.20s (+ 1.50%) 13.41s 13.94s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.06s (± 0.45%) 16.25s (± 0.87%) +0.19s (+ 1.20%) 16.02s 16.58s
Angular - node (v12.1.0, x64)
Memory used 326,934k (± 0.02%) 327,239k (± 0.09%) +306k (+ 0.09%) 326,028k 327,553k
Parse Time 2.00s (± 0.53%) 2.02s (± 0.47%) +0.02s (+ 0.80%) 1.99s 2.03s
Bind Time 0.81s (± 1.12%) 0.81s (± 0.64%) +0.00s (+ 0.25%) 0.80s 0.82s
Check Time 4.83s (± 0.40%) 4.88s (± 0.72%) +0.04s (+ 0.91%) 4.80s 4.99s
Emit Time 5.39s (± 0.84%) 5.43s (± 0.79%) +0.04s (+ 0.67%) 5.37s 5.56s
Total Time 13.04s (± 0.52%) 13.13s (± 0.57%) +0.10s (+ 0.74%) 13.00s 13.39s
Monaco - node (v12.1.0, x64)
Memory used 336,578k (± 0.02%) 336,603k (± 0.01%) +26k (+ 0.01%) 336,497k 336,721k
Parse Time 1.54s (± 0.72%) 1.55s (± 0.85%) +0.01s (+ 0.78%) 1.51s 1.57s
Bind Time 0.69s (± 0.58%) 0.69s (± 0.64%) +0.00s (+ 0.44%) 0.68s 0.70s
Check Time 4.88s (± 0.50%) 4.91s (± 0.26%) +0.03s (+ 0.57%) 4.89s 4.93s
Emit Time 2.82s (± 0.91%) 2.83s (± 0.64%) +0.01s (+ 0.32%) 2.80s 2.87s
Total Time 9.93s (± 0.39%) 9.98s (± 0.27%) +0.05s (+ 0.50%) 9.93s 10.05s
TFS - node (v12.1.0, x64)
Memory used 291,933k (± 0.03%) 291,920k (± 0.02%) -13k (- 0.00%) 291,748k 292,051k
Parse Time 1.23s (± 0.49%) 1.24s (± 0.73%) +0.02s (+ 1.31%) 1.22s 1.26s
Bind Time 0.65s (± 1.38%) 0.65s (± 0.93%) -0.00s (- 0.15%) 0.63s 0.66s
Check Time 4.47s (± 0.30%) 4.52s (± 0.39%) +0.05s (+ 1.19%) 4.49s 4.57s
Emit Time 2.92s (± 0.99%) 2.95s (± 0.82%) +0.03s (+ 1.03%) 2.91s 3.02s
Total Time 9.26s (± 0.36%) 9.35s (± 0.37%) +0.10s (+ 1.05%) 9.28s 9.45s
material-ui - node (v12.1.0, x64)
Memory used 467,034k (± 0.05%) 469,737k (± 0.07%) +2,703k (+ 0.58%) 468,812k 470,058k
Parse Time 2.01s (± 0.37%) 2.01s (± 0.46%) -0.00s (- 0.05%) 1.99s 2.03s
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.24s (± 0.99%) +0.19s (+ 1.61%) 12.01s 12.51s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 14.70s (± 0.81%) 14.90s (± 0.84%) +0.20s (+ 1.35%) 14.66s 15.18s
Angular - node (v8.9.0, x64)
Memory used 346,442k (± 0.01%) 346,906k (± 0.02%) +464k (+ 0.13%) 346,710k 347,020k
Parse Time 2.54s (± 0.51%) 2.56s (± 0.43%) +0.01s (+ 0.43%) 2.53s 2.58s
Bind Time 0.85s (± 0.43%) 0.87s (± 0.46%) +0.02s (+ 1.99%) 0.86s 0.88s
Check Time 5.56s (± 0.52%) 5.59s (± 0.68%) +0.03s (+ 0.59%) 5.50s 5.67s
Emit Time 6.15s (± 1.07%) 6.25s (± 0.79%) +0.11s (+ 1.72%) 6.13s 6.36s
Total Time 15.11s (± 0.55%) 15.27s (± 0.46%) +0.16s (+ 1.09%) 15.10s 15.43s
Monaco - node (v8.9.0, x64)
Memory used 355,704k (± 0.02%) 355,758k (± 0.02%) +53k (+ 0.01%) 355,636k 355,886k
Parse Time 1.89s (± 0.77%) 1.89s (± 0.50%) +0.00s (+ 0.00%) 1.86s 1.91s
Bind Time 0.89s (± 0.45%) 0.89s (± 0.69%) 0.00s ( 0.00%) 0.88s 0.91s
Check Time 5.62s (± 0.37%) 5.62s (± 0.36%) -0.01s (- 0.14%) 5.59s 5.68s
Emit Time 3.29s (± 1.17%) 3.27s (± 0.97%) -0.02s (- 0.61%) 3.20s 3.35s
Total Time 11.69s (± 0.28%) 11.66s (± 0.47%) -0.03s (- 0.27%) 11.56s 11.83s
TFS - node (v8.9.0, x64)
Memory used 309,391k (± 0.02%) 309,394k (± 0.02%) +3k (+ 0.00%) 309,311k 309,563k
Parse Time 1.55s (± 0.64%) 1.56s (± 0.61%) +0.00s (+ 0.13%) 1.54s 1.57s
Bind Time 0.68s (± 0.73%) 0.68s (± 0.88%) 0.00s ( 0.00%) 0.66s 0.69s
Check Time 5.31s (± 0.58%) 5.32s (± 0.73%) +0.02s (+ 0.28%) 5.24s 5.45s
Emit Time 2.94s (± 0.34%) 2.97s (± 1.19%) +0.03s (+ 1.09%) 2.89s 3.04s
Total Time 10.48s (± 0.34%) 10.53s (± 0.64%) +0.04s (+ 0.42%) 10.37s 10.72s
material-ui - node (v8.9.0, x64)
Memory used 493,431k (± 0.01%) 496,333k (± 0.01%) +2,902k (+ 0.59%) 496,235k 496,432k
Parse Time 2.40s (± 0.46%) 2.42s (± 0.69%) +0.02s (+ 0.71%) 2.38s 2.45s
Bind Time 0.81s (± 1.02%) 0.81s (± 1.02%) 0.00s ( 0.00%) 0.79s 0.83s
Check Time 17.95s (± 0.69%) 18.47s (± 0.80%) +0.52s (+ 2.90%) 18.05s 18.77s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 21.17s (± 0.56%) 21.71s (± 0.73%) +0.54s (+ 2.53%) 21.25s 22.02s
Angular - node (v8.9.0, x86)
Memory used 198,690k (± 0.01%) 198,971k (± 0.01%) +281k (+ 0.14%) 198,908k 199,010k
Parse Time 2.48s (± 1.02%) 2.48s (± 0.63%) +0.01s (+ 0.32%) 2.45s 2.53s
Bind Time 1.00s (± 1.00%) 1.01s (± 0.86%) +0.01s (+ 0.90%) 1.00s 1.04s
Check Time 5.05s (± 0.56%) 5.03s (± 0.56%) -0.02s (- 0.36%) 4.99s 5.10s
Emit Time 5.89s (± 0.83%) 5.98s (± 1.13%) +0.10s (+ 1.65%) 5.85s 6.17s
Total Time 14.42s (± 0.58%) 14.51s (± 0.53%) +0.09s (+ 0.62%) 14.39s 14.77s
Monaco - node (v8.9.0, x86)
Memory used 201,493k (± 0.01%) 201,511k (± 0.02%) +18k (+ 0.01%) 201,436k 201,596k
Parse Time 1.94s (± 1.05%) 1.92s (± 0.95%) -0.02s (- 1.29%) 1.87s 1.95s
Bind Time 0.71s (± 0.47%) 0.71s (± 0.94%) 0.00s ( 0.00%) 0.70s 0.73s
Check Time 5.47s (± 0.38%) 5.58s (± 1.61%) +0.11s (+ 2.03%) 5.38s 5.74s
Emit Time 3.06s (± 0.59%) 2.97s (± 5.54%) -0.09s (- 2.95%) 2.68s 3.25s
Total Time 11.18s (± 0.25%) 11.17s (± 1.00%) -0.01s (- 0.04%) 10.93s 11.41s
TFS - node (v8.9.0, x86)
Memory used 176,867k (± 0.03%) 176,885k (± 0.02%) +18k (+ 0.01%) 176,801k 176,950k
Parse Time 1.60s (± 1.10%) 1.61s (± 1.49%) +0.01s (+ 0.37%) 1.56s 1.66s
Bind Time 0.66s (± 2.04%) 0.65s (± 0.92%) -0.01s (- 1.37%) 0.64s 0.66s
Check Time 4.82s (± 0.58%) 4.82s (± 0.61%) -0.00s (- 0.08%) 4.73s 4.86s
Emit Time 2.80s (± 0.66%) 2.81s (± 0.87%) +0.00s (+ 0.18%) 2.74s 2.87s
Total Time 9.88s (± 0.51%) 9.88s (± 0.60%) -0.00s (- 0.03%) 9.72s 10.01s
material-ui - node (v8.9.0, x86)
Memory used 277,878k (± 0.02%) 279,254k (± 0.02%) +1,377k (+ 0.50%) 279,161k 279,448k
Parse Time 2.46s (± 0.43%) 2.46s (± 0.62%) +0.01s (+ 0.24%) 2.43s 2.50s
Bind Time 0.69s (± 1.35%) 0.71s (± 2.93%) +0.02s (+ 3.34%) 0.67s 0.77s
Check Time 16.45s (± 0.73%) 16.79s (± 0.70%) +0.34s (+ 2.08%) 16.56s 16.99s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 19.60s (± 0.63%) 19.97s (± 0.67%) +0.37s (+ 1.89%) 19.71s 20.19s
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 41084 10
Baseline master 10

@andrewbranch
Copy link
Member

Hmm, the performance here looks a little worse than #41003 on material-ui and monaco, but that makes me wonder if there were previously more incorrect instantiations in material-ui that just went unnoticed 🤔. The difference is almost within the margin of error, so maybe not too bad...

@ahejlsberg
Copy link
Member Author

It's possible the slowdown is just a result of reduced monomorphism in object layouts, but the numbers are higher enough that likely there are more type objects being allocated. Would be interesting to know where those extra allocations are coming from. I have a sense it isn't just spreads in object literals.

@andrewbranch
Copy link
Member

I'll see if I can find out—in my first attempts I had some code that used the cache both the old way and the new way and hit a debugger statement any time the results differed. I'll bring that back and see what I can find.

@ahejlsberg
Copy link
Member Author

I think I see what's causing the slowdown. The changes aren't quite right for deferred type references, we need to obtain the "root" deferred type reference (the one produced by getTypeFromTypeNode) and then store the cache there. As it currently stands the caching is spread out over multiple type objects when we're doing instantiations of instantiations. In material-ui this causes the type count to increase from 159.5K to 165K. I'll put up a fix shortly.

@ahejlsberg
Copy link
Member Author

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 13, 2020

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

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..41084

Metric master 41084 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 349,757k (± 0.02%) 350,265k (± 0.01%) +508k (+ 0.15%) 350,201k 350,342k
Parse Time 2.01s (± 0.80%) 2.00s (± 0.49%) -0.01s (- 0.55%) 1.98s 2.02s
Bind Time 0.82s (± 1.07%) 0.83s (± 0.91%) +0.01s (+ 1.34%) 0.82s 0.85s
Check Time 4.94s (± 0.54%) 4.97s (± 0.40%) +0.03s (+ 0.69%) 4.94s 5.02s
Emit Time 5.19s (± 0.41%) 5.22s (± 0.68%) +0.03s (+ 0.64%) 5.15s 5.30s
Total Time 12.96s (± 0.34%) 13.03s (± 0.44%) +0.06s (+ 0.49%) 12.92s 13.15s
Monaco - node (v10.16.3, x64)
Memory used 354,351k (± 0.02%) 354,349k (± 0.01%) -2k (- 0.00%) 354,242k 354,446k
Parse Time 1.57s (± 0.57%) 1.56s (± 0.64%) -0.00s (- 0.19%) 1.53s 1.58s
Bind Time 0.71s (± 0.56%) 0.71s (± 0.70%) +0.00s (+ 0.56%) 0.71s 0.73s
Check Time 5.07s (± 0.54%) 5.10s (± 0.33%) +0.02s (+ 0.49%) 5.07s 5.14s
Emit Time 2.76s (± 0.93%) 2.76s (± 0.38%) -0.00s (- 0.14%) 2.74s 2.78s
Total Time 10.11s (± 0.37%) 10.14s (± 0.25%) +0.03s (+ 0.25%) 10.09s 10.19s
TFS - node (v10.16.3, x64)
Memory used 307,640k (± 0.04%) 307,655k (± 0.02%) +14k (+ 0.00%) 307,513k 307,767k
Parse Time 1.22s (± 0.76%) 1.22s (± 0.54%) -0.00s (- 0.16%) 1.21s 1.24s
Bind Time 0.66s (± 1.37%) 0.67s (± 0.86%) +0.01s (+ 1.82%) 0.66s 0.69s
Check Time 4.57s (± 0.94%) 4.60s (± 0.41%) +0.03s (+ 0.66%) 4.56s 4.64s
Emit Time 2.90s (± 1.72%) 2.93s (± 0.96%) +0.03s (+ 0.93%) 2.84s 2.98s
Total Time 9.35s (± 0.59%) 9.42s (± 0.44%) +0.07s (+ 0.72%) 9.29s 9.50s
material-ui - node (v10.16.3, x64)
Memory used 489,125k (± 0.02%) 489,110k (± 0.02%) -15k (- 0.00%) 488,887k 489,257k
Parse Time 1.99s (± 0.54%) 1.98s (± 0.59%) -0.01s (- 0.75%) 1.95s 2.01s
Bind Time 0.65s (± 0.90%) 0.66s (± 0.76%) +0.01s (+ 1.24%) 0.65s 0.67s
Check Time 13.42s (± 0.51%) 13.46s (± 0.71%) +0.04s (+ 0.28%) 13.28s 13.78s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.06s (± 0.45%) 16.09s (± 0.59%) +0.03s (+ 0.21%) 15.91s 16.42s
Angular - node (v12.1.0, x64)
Memory used 326,934k (± 0.02%) 327,361k (± 0.03%) +427k (+ 0.13%) 327,219k 327,561k
Parse Time 2.00s (± 0.53%) 2.00s (± 0.41%) +0.00s (+ 0.15%) 1.99s 2.02s
Bind Time 0.81s (± 1.12%) 0.81s (± 0.72%) -0.00s (- 0.25%) 0.80s 0.82s
Check Time 4.83s (± 0.40%) 4.86s (± 0.25%) +0.02s (+ 0.48%) 4.83s 4.89s
Emit Time 5.39s (± 0.84%) 5.41s (± 0.54%) +0.02s (+ 0.33%) 5.35s 5.48s
Total Time 13.04s (± 0.52%) 13.08s (± 0.31%) +0.04s (+ 0.31%) 12.97s 13.15s
Monaco - node (v12.1.0, x64)
Memory used 336,578k (± 0.02%) 336,654k (± 0.02%) +77k (+ 0.02%) 336,436k 336,822k
Parse Time 1.54s (± 0.72%) 1.54s (± 0.93%) +0.01s (+ 0.39%) 1.52s 1.59s
Bind Time 0.69s (± 0.58%) 0.69s (± 0.68%) +0.00s (+ 0.15%) 0.68s 0.70s
Check Time 4.88s (± 0.50%) 4.90s (± 0.28%) +0.02s (+ 0.45%) 4.88s 4.93s
Emit Time 2.82s (± 0.91%) 2.81s (± 0.43%) -0.02s (- 0.60%) 2.79s 2.85s
Total Time 9.93s (± 0.39%) 9.94s (± 0.32%) +0.01s (+ 0.11%) 9.88s 10.00s
TFS - node (v12.1.0, x64)
Memory used 291,933k (± 0.03%) 291,892k (± 0.02%) -41k (- 0.01%) 291,721k 291,996k
Parse Time 1.23s (± 0.49%) 1.23s (± 0.77%) +0.01s (+ 0.73%) 1.22s 1.25s
Bind Time 0.65s (± 1.38%) 0.64s (± 1.06%) -0.00s (- 0.31%) 0.63s 0.66s
Check Time 4.47s (± 0.30%) 4.49s (± 0.27%) +0.02s (+ 0.52%) 4.47s 4.52s
Emit Time 2.92s (± 0.99%) 2.91s (± 0.59%) -0.01s (- 0.34%) 2.87s 2.94s
Total Time 9.26s (± 0.36%) 9.28s (± 0.28%) +0.02s (+ 0.19%) 9.24s 9.34s
material-ui - node (v12.1.0, x64)
Memory used 467,034k (± 0.05%) 467,095k (± 0.05%) +60k (+ 0.01%) 466,262k 467,301k
Parse Time 2.01s (± 0.37%) 2.00s (± 0.58%) -0.01s (- 0.40%) 1.98s 2.03s
Bind Time 0.64s (± 1.05%) 0.64s (± 0.63%) +0.00s (+ 0.31%) 0.63s 0.65s
Check Time 12.05s (± 0.94%) 12.11s (± 1.03%) +0.06s (+ 0.51%) 11.96s 12.40s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 14.70s (± 0.81%) 14.75s (± 0.88%) +0.05s (+ 0.37%) 14.58s 15.05s
Angular - node (v8.9.0, x64)
Memory used 346,442k (± 0.01%) 346,903k (± 0.03%) +461k (+ 0.13%) 346,698k 347,095k
Parse Time 2.54s (± 0.51%) 2.55s (± 0.33%) +0.01s (+ 0.24%) 2.54s 2.58s
Bind Time 0.85s (± 0.43%) 0.87s (± 0.60%) +0.02s (+ 1.99%) 0.86s 0.88s
Check Time 5.56s (± 0.52%) 5.55s (± 0.41%) -0.00s (- 0.05%) 5.52s 5.63s
Emit Time 6.15s (± 1.07%) 6.25s (± 0.71%) +0.10s (+ 1.66%) 6.16s 6.36s
Total Time 15.11s (± 0.55%) 15.23s (± 0.41%) +0.12s (+ 0.80%) 15.11s 15.38s
Monaco - node (v8.9.0, x64)
Memory used 355,704k (± 0.02%) 355,737k (± 0.02%) +33k (+ 0.01%) 355,620k 355,877k
Parse Time 1.89s (± 0.77%) 1.88s (± 0.44%) -0.00s (- 0.11%) 1.86s 1.90s
Bind Time 0.89s (± 0.45%) 0.89s (± 0.58%) -0.00s (- 0.22%) 0.88s 0.90s
Check Time 5.62s (± 0.37%) 5.62s (± 0.48%) -0.00s (- 0.02%) 5.57s 5.70s
Emit Time 3.29s (± 1.17%) 3.26s (± 0.86%) -0.02s (- 0.73%) 3.22s 3.33s
Total Time 11.69s (± 0.28%) 11.66s (± 0.39%) -0.03s (- 0.27%) 11.57s 11.79s
TFS - node (v8.9.0, x64)
Memory used 309,391k (± 0.02%) 309,390k (± 0.01%) -1k (- 0.00%) 309,275k 309,486k
Parse Time 1.55s (± 0.64%) 1.55s (± 0.40%) -0.00s (- 0.13%) 1.54s 1.56s
Bind Time 0.68s (± 0.73%) 0.68s (± 0.70%) +0.00s (+ 0.15%) 0.67s 0.69s
Check Time 5.31s (± 0.58%) 5.30s (± 0.47%) -0.00s (- 0.09%) 5.24s 5.36s
Emit Time 2.94s (± 0.34%) 2.95s (± 0.82%) +0.01s (+ 0.24%) 2.87s 3.00s
Total Time 10.48s (± 0.34%) 10.47s (± 0.44%) -0.01s (- 0.07%) 10.34s 10.57s
material-ui - node (v8.9.0, x64)
Memory used 493,431k (± 0.01%) 493,500k (± 0.01%) +69k (+ 0.01%) 493,378k 493,599k
Parse Time 2.40s (± 0.46%) 2.40s (± 0.27%) -0.01s (- 0.21%) 2.38s 2.41s
Bind Time 0.81s (± 1.02%) 0.81s (± 0.58%) -0.00s (- 0.12%) 0.80s 0.82s
Check Time 17.95s (± 0.69%) 17.87s (± 0.93%) -0.08s (- 0.46%) 17.37s 18.19s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 21.17s (± 0.56%) 21.08s (± 0.80%) -0.09s (- 0.42%) 20.57s 21.41s
Angular - node (v8.9.0, x86)
Memory used 198,690k (± 0.01%) 198,965k (± 0.03%) +275k (+ 0.14%) 198,815k 199,103k
Parse Time 2.48s (± 1.02%) 2.48s (± 0.59%) -0.00s (- 0.04%) 2.44s 2.51s
Bind Time 1.00s (± 1.00%) 1.01s (± 0.68%) +0.00s (+ 0.30%) 0.99s 1.02s
Check Time 5.05s (± 0.56%) 5.03s (± 0.58%) -0.02s (- 0.34%) 4.96s 5.09s
Emit Time 5.89s (± 0.83%) 6.06s (± 0.84%) +0.18s (+ 3.02%) 5.93s 6.16s
Total Time 14.42s (± 0.58%) 14.58s (± 0.41%) +0.16s (+ 1.12%) 14.43s 14.66s
Monaco - node (v8.9.0, x86)
Memory used 201,493k (± 0.01%) 201,525k (± 0.02%) +32k (+ 0.02%) 201,440k 201,622k
Parse Time 1.94s (± 1.05%) 1.91s (± 0.53%) -0.03s (- 1.49%) 1.89s 1.93s
Bind Time 0.71s (± 0.47%) 0.70s (± 0.52%) -0.01s (- 0.85%) 0.70s 0.71s
Check Time 5.47s (± 0.38%) 5.49s (± 1.43%) +0.02s (+ 0.33%) 5.34s 5.75s
Emit Time 3.06s (± 0.59%) 3.05s (± 2.50%) -0.00s (- 0.07%) 2.75s 3.12s
Total Time 11.18s (± 0.25%) 11.16s (± 0.36%) -0.02s (- 0.15%) 11.04s 11.23s
TFS - node (v8.9.0, x86)
Memory used 176,867k (± 0.03%) 176,896k (± 0.03%) +29k (+ 0.02%) 176,770k 176,998k
Parse Time 1.60s (± 1.10%) 1.58s (± 0.59%) -0.02s (- 1.43%) 1.57s 1.61s
Bind Time 0.66s (± 2.04%) 0.65s (± 0.77%) -0.01s (- 1.53%) 0.63s 0.65s
Check Time 4.82s (± 0.58%) 4.81s (± 0.62%) -0.01s (- 0.23%) 4.76s 4.90s
Emit Time 2.80s (± 0.66%) 2.81s (± 1.21%) +0.01s (+ 0.21%) 2.73s 2.90s
Total Time 9.88s (± 0.51%) 9.85s (± 0.54%) -0.04s (- 0.36%) 9.71s 9.98s
material-ui - node (v8.9.0, x86)
Memory used 277,878k (± 0.02%) 277,872k (± 0.01%) -5k (- 0.00%) 277,819k 277,922k
Parse Time 2.46s (± 0.43%) 2.46s (± 0.49%) +0.00s (+ 0.12%) 2.43s 2.48s
Bind Time 0.69s (± 1.35%) 0.69s (± 1.37%) +0.01s (+ 0.87%) 0.67s 0.72s
Check Time 16.45s (± 0.73%) 16.37s (± 0.24%) -0.08s (- 0.48%) 16.28s 16.45s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 19.60s (± 0.63%) 19.52s (± 0.27%) -0.07s (- 0.36%) 19.41s 19.62s

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 41084 10
Baseline master 10

@ahejlsberg
Copy link
Member Author

Much better. Looks like we're now in the margin of error.

@ahejlsberg
Copy link
Member Author

BTW, I have manually verified that this PR now doesn't affect the number of types created when compiling material-ui.

Copy link
Member

@andrewbranch andrewbranch left a comment

Choose a reason for hiding this comment

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

Added the test case from #41003. Thanks for the help!

@ahejlsberg ahejlsberg merged commit 3918e6c into master Oct 19, 2020
@ahejlsberg ahejlsberg deleted the fix40995 branch October 19, 2020 14:27
@typescript-bot typescript-bot added For Milestone Bug PRs that fix a bug with a specific milestone and removed For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Oct 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Milestone Bug PRs that fix a bug with a specific milestone
Projects
None yet
Development

Successfully merging this pull request may close these issues.

typescript generic break filter after spreading object in map
3 participants