Skip to content

Kick out of normalizePath if there's nothing to do - #44173

Merged
Andrew Casey (amcasey) merged 3 commits into
microsoft:masterfrom
amcasey:NormalizePath
May 24, 2021
Merged

Kick out of normalizePath if there's nothing to do#44173
Andrew Casey (amcasey) merged 3 commits into
microsoft:masterfrom
amcasey:NormalizePath

Conversation

@amcasey

Copy link
Copy Markdown
Member

...using relativePathSegmentRegExp.

Bonus: use a regex to handle "/./" to avoid splitting and joining in a common case.

When building the compiler, for example, it looks like ~95% of arguments to normalizePath do not require any normalization.

@amcasey

Copy link
Copy Markdown
MemberAuthor

Note: I tried to reimplement getNormalizedAbsolutePath and getNormalizedAbsolutePathWithoutRoot in terms of normalizePath, but they have different trailing slash handling. Since they're called much less frequently, I left them as-is for now.

@amcasey

Copy link
Copy Markdown
MemberAuthor

TypeScript Bot (@typescript-bot) perf test this

@typescript-bot

TypeScript Bot (typescript-bot) commented May 19, 2021

Copy link
Copy Markdown
Contributor

Heya Andrew Casey (@amcasey), I've started to run the perf test suite on this PR at d5bfa4b. You can monitor the build here.

Update: The results are in!

@amcasey

Copy link
Copy Markdown
MemberAuthor

Note: this PR incorporates #44149.

Comment threadsrc/compiler/path.ts Outdated

export function normalizePath(path: string): string {
path = normalizeSlashes(path);
path = path.replace(/\/\.\//g, "/");

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

I could go either way on this replacement. Among paths that require updates, this is commonly enough (1/3 if I had to ballpark it), but the number is dwarfed by the number that require no changes at all (in which case this is a wasted string traversal). I measured it both ways and the difference was less than the margin of error.

Comment threadsrc/compiler/path.ts Outdated

// check path for these segments: '', '.'. '..'
const relativePathSegmentRegExp = /(^|\/)\.{0,2}($|\/)/;
const relativePathSegmentRegExp = /(?:^|\/)\.\.?(?:$|\/)|\/\//;

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Without this change, the kickout essentially never happens.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Non-capturing groups are also cheaper than capturing groups, in general, so should be used any time the capture isn't necessary.

@typescript-bot

Copy link
Copy Markdown
Contributor

Andrew Casey (@amcasey)
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..44173

Metricmaster44173DeltaBestWorst
Angular - node (v10.16.3, x64)
Memory used345,228k (± 0.01%)343,676k (± 0.01%)-1,552k (- 0.45%)343,577k343,770k
Parse Time1.92s (± 0.59%)1.83s (± 0.70%)🟩-0.09s (- 4.84%)1.81s1.87s
Bind Time0.84s (± 0.74%)0.83s (± 0.44%)-0.01s (- 0.60%)0.83s0.84s
Check Time5.28s (± 0.30%)5.21s (± 0.42%)-0.07s (- 1.38%)5.16s5.26s
Emit Time5.54s (± 0.49%)5.48s (± 0.57%)-0.06s (- 1.08%)5.43s5.57s
Total Time13.58s (± 0.22%)13.35s (± 0.40%)-0.23s (- 1.70%)13.25s13.52s
Compiler-Unions - node (v10.16.3, x64)
Memory used200,338k (± 0.06%)200,322k (± 0.04%)-16k (- 0.01%)200,161k200,513k
Parse Time0.78s (± 0.67%)0.79s (± 1.18%)+0.01s (+ 1.16%)0.77s0.81s
Bind Time0.53s (± 0.76%)0.52s (± 1.28%)-0.01s (- 1.13%)0.51s0.54s
Check Time7.54s (± 0.45%)7.53s (± 0.73%)-0.00s (- 0.07%)7.41s7.67s
Emit Time2.25s (± 1.16%)2.24s (± 1.20%)-0.01s (- 0.44%)2.19s2.29s
Total Time11.10s (± 0.56%)11.08s (± 0.66%)-0.02s (- 0.14%)10.90s11.26s
Monaco - node (v10.16.3, x64)
Memory used341,735k (± 0.01%)340,419k (± 0.03%)-1,315k (- 0.38%)340,297k340,797k
Parse Time1.55s (± 0.65%)1.46s (± 0.60%)🟩-0.09s (- 5.86%)1.45s1.49s
Bind Time0.74s (± 0.49%)0.74s (± 1.00%)-0.00s (- 0.13%)0.73s0.76s
Check Time5.40s (± 0.42%)5.33s (± 0.50%)-0.07s (- 1.37%)5.27s5.38s
Emit Time3.00s (± 1.15%)2.98s (± 0.71%)-0.01s (- 0.40%)2.93s3.03s
Total Time10.69s (± 0.47%)10.52s (± 0.20%)-0.18s (- 1.64%)10.47s10.57s
TFS - node (v10.16.3, x64)
Memory used304,221k (± 0.03%)303,998k (± 0.02%)-223k (- 0.07%)303,900k304,231k
Parse Time1.21s (± 0.39%)1.19s (± 0.40%)-0.03s (- 2.14%)1.18s1.20s
Bind Time0.70s (± 0.85%)0.71s (± 0.78%)+0.00s (+ 0.43%)0.70s0.72s
Check Time4.87s (± 0.35%)4.84s (± 0.43%)-0.03s (- 0.64%)4.80s4.89s
Emit Time3.09s (± 0.99%)3.05s (± 1.28%)-0.03s (- 1.04%)2.98s3.18s
Total Time9.88s (± 0.40%)9.79s (± 0.51%)-0.09s (- 0.87%)9.69s9.94s
material-ui - node (v10.16.3, x64)
Memory used474,033k (± 0.02%)471,383k (± 0.02%)-2,650k (- 0.56%)471,254k471,637k
Parse Time1.94s (± 0.57%)1.74s (± 0.60%)🟩-0.20s (-10.39%)1.73s1.77s
Bind Time0.66s (± 1.45%)0.66s (± 0.89%)+0.01s (+ 1.22%)0.65s0.68s
Check Time14.30s (± 0.71%)14.13s (± 0.52%)-0.17s (- 1.18%)13.96s14.26s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time16.90s (± 0.62%)16.54s (± 0.44%)-0.36s (- 2.15%)16.38s16.67s
Angular - node (v12.1.0, x64)
Memory used322,701k (± 0.02%)322,079k (± 0.03%)-622k (- 0.19%)321,941k322,282k
Parse Time1.91s (± 0.41%)1.79s (± 0.74%)🟩-0.12s (- 6.08%)1.77s1.82s
Bind Time0.82s (± 0.63%)0.82s (± 0.44%)+0.00s (+ 0.61%)0.82s0.83s
Check Time5.16s (± 0.54%)5.08s (± 0.59%)-0.08s (- 1.57%)5.02s5.15s
Emit Time5.76s (± 0.48%)5.68s (± 0.29%)-0.08s (- 1.34%)5.65s5.73s
Total Time13.65s (± 0.37%)13.37s (± 0.33%)-0.27s (- 2.00%)13.31s13.47s
Compiler-Unions - node (v12.1.0, x64)
Memory used187,815k (± 0.02%)187,760k (± 0.07%)-55k (- 0.03%)187,242k187,875k
Parse Time0.77s (± 0.78%)0.77s (± 0.87%)+0.00s (+ 0.13%)0.76s0.79s
Bind Time0.53s (± 0.69%)0.53s (± 0.76%)+0.00s (+ 0.57%)0.52s0.54s
Check Time7.00s (± 0.38%)7.02s (± 0.60%)+0.02s (+ 0.24%)6.91s7.09s
Emit Time2.25s (± 1.46%)2.22s (± 0.62%)-0.03s (- 1.29%)2.20s2.27s
Total Time10.55s (± 0.45%)10.54s (± 0.46%)-0.01s (- 0.08%)10.42s10.65s
Monaco - node (v12.1.0, x64)
Memory used323,851k (± 0.08%)323,464k (± 0.02%)-387k (- 0.12%)323,354k323,651k
Parse Time1.54s (± 0.65%)1.43s (± 0.94%)🟩-0.11s (- 6.90%)1.41s1.46s
Bind Time0.72s (± 0.72%)0.72s (± 0.93%)-0.00s (- 0.28%)0.71s0.73s
Check Time5.24s (± 0.78%)5.17s (± 0.48%)-0.07s (- 1.26%)5.13s5.23s
Emit Time3.05s (± 1.02%)3.01s (± 0.63%)-0.03s (- 1.15%)2.98s3.06s
Total Time10.54s (± 0.67%)10.33s (± 0.33%)-0.21s (- 1.98%)10.25s10.42s
TFS - node (v12.1.0, x64)
Memory used288,741k (± 0.02%)288,505k (± 0.02%)-235k (- 0.08%)288,386k288,620k
Parse Time1.21s (± 0.84%)1.19s (± 0.50%)-0.03s (- 2.06%)1.18s1.20s
Bind Time0.70s (± 0.71%)0.69s (± 1.02%)-0.01s (- 1.01%)0.68s0.71s
Check Time4.78s (± 0.50%)4.74s (± 0.56%)-0.04s (- 0.77%)4.69s4.82s
Emit Time3.13s (± 0.65%)3.11s (± 0.60%)-0.02s (- 0.48%)3.05s3.15s
Total Time9.81s (± 0.47%)9.72s (± 0.34%)-0.08s (- 0.87%)9.65s9.79s
material-ui - node (v12.1.0, x64)
Memory used451,611k (± 0.10%)450,141k (± 0.04%)-1,471k (- 0.33%)449,560k450,410k
Parse Time1.95s (± 0.45%)1.74s (± 0.37%)🟩-0.21s (-10.80%)1.73s1.76s
Bind Time0.64s (± 0.73%)0.64s (± 0.91%)-0.00s (- 0.47%)0.63s0.65s
Check Time12.89s (± 0.80%)12.72s (± 0.51%)-0.17s (- 1.33%)12.59s12.86s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time15.48s (± 0.71%)15.10s (± 0.41%)-0.38s (- 2.46%)14.97s15.23s
Angular - node (v14.15.1, x64)
Memory used321,427k (± 0.01%)320,716k (± 0.01%)-711k (- 0.22%)320,668k320,781k
Parse Time1.91s (± 0.55%)1.81s (± 0.64%)🟩-0.10s (- 5.24%)1.79s1.84s
Bind Time0.87s (± 0.60%)0.87s (± 0.89%)0.00s ( 0.00%)0.86s0.89s
Check Time5.16s (± 0.46%)5.12s (± 0.48%)-0.04s (- 0.81%)5.07s5.17s
Emit Time5.82s (± 0.51%)5.77s (± 0.76%)-0.05s (- 0.89%)5.69s5.87s
Total Time13.76s (± 0.36%)13.56s (± 0.55%)-0.20s (- 1.42%)13.41s13.75s
Compiler-Unions - node (v14.15.1, x64)
Memory used188,108k (± 0.63%)188,765k (± 0.58%)+656k (+ 0.35%)186,489k189,806k
Parse Time0.80s (± 0.72%)0.80s (± 0.77%)-0.00s (- 0.25%)0.79s0.81s
Bind Time0.56s (± 0.85%)0.55s (± 0.67%)-0.00s (- 0.36%)0.55s0.56s
Check Time7.14s (± 0.54%)7.14s (± 0.34%)+0.00s (+ 0.01%)7.08s7.20s
Emit Time2.24s (± 0.90%)2.26s (± 0.93%)+0.02s (+ 0.89%)2.21s2.30s
Total Time10.74s (± 0.36%)10.76s (± 0.35%)+0.02s (+ 0.17%)10.68s10.84s
Monaco - node (v14.15.1, x64)
Memory used323,139k (± 0.01%)322,447k (± 0.01%)-692k (- 0.21%)322,408k322,498k
Parse Time1.57s (± 0.82%)1.48s (± 0.52%)🟩-0.09s (- 5.98%)1.46s1.50s
Bind Time0.75s (± 0.78%)0.74s (± 0.66%)-0.00s (- 0.40%)0.74s0.76s
Check Time5.21s (± 0.71%)5.16s (± 0.50%)-0.06s (- 1.07%)5.10s5.23s
Emit Time3.09s (± 1.01%)3.06s (± 0.73%)-0.03s (- 0.84%)3.04s3.13s
Total Time10.62s (± 0.43%)10.44s (± 0.45%)-0.18s (- 1.67%)10.36s10.58s
TFS - node (v14.15.1, x64)
Memory used287,683k (± 0.01%)287,524k (± 0.00%)-158k (- 0.05%)287,487k287,549k
Parse Time1.27s (± 1.58%)1.24s (± 0.65%)-0.03s (- 2.67%)1.23s1.26s
Bind Time0.71s (± 0.83%)0.72s (± 1.46%)+0.01s (+ 0.84%)0.71s0.76s
Check Time4.82s (± 0.33%)4.80s (± 0.56%)-0.01s (- 0.31%)4.74s4.88s
Emit Time3.21s (± 0.85%)3.21s (± 0.55%)-0.00s (- 0.16%)3.17s3.25s
Total Time10.01s (± 0.37%)9.96s (± 0.29%)-0.05s (- 0.47%)9.91s10.04s
material-ui - node (v14.15.1, x64)
Memory used450,052k (± 0.07%)448,420k (± 0.06%)-1,633k (- 0.36%)447,412k448,657k
Parse Time1.98s (± 0.61%)1.80s (± 0.58%)🟩-0.18s (- 9.24%)1.77s1.82s
Bind Time0.70s (± 0.82%)0.70s (± 0.43%)-0.00s (- 0.29%)0.69s0.70s
Check Time12.99s (± 0.64%)12.91s (± 0.54%)-0.08s (- 0.62%)12.77s13.11s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time15.67s (± 0.56%)15.40s (± 0.46%)-0.27s (- 1.72%)15.26s15.61s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-206-generic
Architecturex64
Available Memory16 GB
Available Memory2 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v10.16.3, x64)
  • Compiler-Unions - node (v12.1.0, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v14.15.1, x64)
BenchmarkNameIterations
Current4417310
Baselinemaster10

Developer Information:

Download Benchmark

@amcasey

Copy link
Copy Markdown
MemberAuthor

TypeScript Bot (@typescript-bot) perf test this

@typescript-bot

TypeScript Bot (typescript-bot) commented May 19, 2021

Copy link
Copy Markdown
Contributor

Heya Andrew Casey (@amcasey), I've started to run the perf test suite on this PR at a9351dd. You can monitor the build here.

Update: The results are in!

@typescript-bot

Copy link
Copy Markdown
Contributor

Andrew Casey (@amcasey)
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..44173

Metricmaster44173DeltaBestWorst
Angular - node (v10.16.3, x64)
Memory used345,177k (± 0.02%)343,770k (± 0.02%)-1,407k (- 0.41%)343,644k343,882k
Parse Time1.92s (± 0.54%)1.81s (± 0.43%)🟩-0.11s (- 5.88%)1.79s1.82s
Bind Time0.84s (± 0.77%)0.84s (± 0.56%)-0.00s (- 0.24%)0.83s0.85s
Check Time5.25s (± 0.32%)5.17s (± 0.43%)-0.08s (- 1.54%)5.12s5.22s
Emit Time5.51s (± 0.32%)5.46s (± 0.54%)-0.05s (- 0.93%)5.40s5.52s
Total Time13.53s (± 0.20%)13.28s (± 0.22%)-0.25s (- 1.81%)13.23s13.36s
Compiler-Unions - node (v10.16.3, x64)
Memory used200,344k (± 0.03%)200,175k (± 0.07%)-169k (- 0.08%)199,848k200,471k
Parse Time0.78s (± 0.90%)0.79s (± 0.97%)+0.00s (+ 0.51%)0.77s0.80s
Bind Time0.52s (± 1.82%)0.53s (± 1.09%)+0.01s (+ 1.15%)0.52s0.54s
Check Time7.56s (± 0.44%)7.53s (± 0.52%)-0.03s (- 0.41%)7.40s7.58s
Emit Time2.23s (± 0.65%)2.26s (± 1.53%)+0.02s (+ 0.98%)2.21s2.34s
Total Time11.10s (± 0.34%)11.10s (± 0.44%)-0.00s (- 0.02%)11.02s11.22s
Monaco - node (v10.16.3, x64)
Memory used341,676k (± 0.02%)340,443k (± 0.02%)-1,233k (- 0.36%)340,202k340,552k
Parse Time1.56s (± 0.53%)1.47s (± 0.61%)🟩-0.09s (- 5.78%)1.45s1.48s
Bind Time0.74s (± 0.50%)0.74s (± 0.91%)-0.01s (- 1.07%)0.73s0.76s
Check Time5.40s (± 0.51%)5.37s (± 0.48%)-0.03s (- 0.63%)5.31s5.41s
Emit Time3.00s (± 0.62%)2.97s (± 0.88%)-0.03s (- 0.83%)2.92s3.04s
Total Time10.70s (± 0.38%)10.54s (± 0.36%)-0.15s (- 1.45%)10.47s10.64s
TFS - node (v10.16.3, x64)
Memory used304,245k (± 0.03%)304,007k (± 0.03%)-238k (- 0.08%)303,828k304,257k
Parse Time1.22s (± 0.28%)1.18s (± 0.42%)-0.03s (- 2.71%)1.17s1.19s
Bind Time0.70s (± 0.52%)0.71s (± 0.63%)+0.00s (+ 0.57%)0.70s0.72s
Check Time4.86s (± 0.47%)4.86s (± 0.41%)-0.00s (- 0.04%)4.83s4.91s
Emit Time3.15s (± 1.35%)3.05s (± 1.24%)-0.09s (- 2.96%)2.96s3.14s
Total Time9.93s (± 0.45%)9.81s (± 0.50%)-0.12s (- 1.18%)9.70s9.93s
material-ui - node (v10.16.3, x64)
Memory used474,165k (± 0.01%)471,501k (± 0.01%)-2,664k (- 0.56%)471,366k471,633k
Parse Time1.93s (± 0.46%)1.73s (± 0.54%)🟩-0.20s (-10.35%)1.72s1.76s
Bind Time0.66s (± 0.72%)0.66s (± 0.74%)+0.01s (+ 1.07%)0.65s0.67s
Check Time14.18s (± 0.45%)14.15s (± 0.53%)-0.03s (- 0.22%)13.97s14.38s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time16.77s (± 0.35%)16.55s (± 0.46%)-0.22s (- 1.30%)16.37s16.79s
Angular - node (v12.1.0, x64)
Memory used322,633k (± 0.02%)322,028k (± 0.03%)-604k (- 0.19%)321,762k322,237k
Parse Time1.91s (± 0.71%)1.80s (± 0.59%)🟩-0.11s (- 5.82%)1.77s1.82s
Bind Time0.82s (± 0.63%)0.83s (± 0.92%)+0.01s (+ 0.85%)0.81s0.84s
Check Time5.18s (± 0.53%)5.08s (± 0.51%)-0.09s (- 1.82%)5.00s5.13s
Emit Time5.76s (± 0.55%)5.72s (± 0.64%)-0.04s (- 0.73%)5.65s5.82s
Total Time13.66s (± 0.35%)13.42s (± 0.35%)-0.24s (- 1.79%)13.35s13.55s
Compiler-Unions - node (v12.1.0, x64)
Memory used187,868k (± 0.04%)187,585k (± 0.10%)-283k (- 0.15%)187,221k187,963k
Parse Time0.77s (± 0.86%)0.77s (± 0.84%)+0.00s (+ 0.26%)0.75s0.78s
Bind Time0.53s (± 1.09%)0.53s (± 0.89%)-0.00s (- 0.56%)0.52s0.54s
Check Time7.02s (± 0.93%)7.00s (± 0.68%)-0.02s (- 0.21%)6.92s7.15s
Emit Time2.23s (± 0.55%)2.24s (± 1.32%)+0.01s (+ 0.45%)2.19s2.35s
Total Time10.55s (± 0.66%)10.55s (± 0.64%)-0.01s (- 0.05%)10.44s10.71s
Monaco - node (v12.1.0, x64)
Memory used324,121k (± 0.03%)323,451k (± 0.02%)-670k (- 0.21%)323,308k323,616k
Parse Time1.54s (± 0.91%)1.42s (± 0.62%)🟩-0.12s (- 7.87%)1.40s1.44s
Bind Time0.72s (± 0.72%)0.72s (± 0.47%)-0.00s (- 0.55%)0.71s0.72s
Check Time5.20s (± 0.45%)5.19s (± 0.51%)-0.01s (- 0.27%)5.13s5.25s
Emit Time3.02s (± 0.70%)3.00s (± 0.51%)-0.02s (- 0.60%)2.95s3.02s
Total Time10.48s (± 0.27%)10.32s (± 0.32%)-0.16s (- 1.50%)10.21s10.38s
TFS - node (v12.1.0, x64)
Memory used288,745k (± 0.01%)288,531k (± 0.01%)-213k (- 0.07%)288,416k288,565k
Parse Time1.21s (± 0.94%)1.19s (± 0.73%)-0.02s (- 1.98%)1.18s1.22s
Bind Time0.69s (± 0.86%)0.69s (± 0.90%)-0.00s (- 0.72%)0.68s0.71s
Check Time4.78s (± 0.47%)4.77s (± 0.62%)-0.00s (- 0.04%)4.72s4.84s
Emit Time3.13s (± 1.17%)3.10s (± 0.71%)-0.03s (- 1.05%)3.06s3.15s
Total Time9.81s (± 0.58%)9.75s (± 0.43%)-0.06s (- 0.66%)9.65s9.82s
material-ui - node (v12.1.0, x64)
Memory used451,735k (± 0.08%)450,286k (± 0.01%)-1,449k (- 0.32%)450,170k450,420k
Parse Time1.95s (± 0.41%)1.72s (± 0.68%)🟩-0.23s (-11.76%)1.69s1.75s
Bind Time0.64s (± 0.87%)0.64s (± 1.06%)+0.01s (+ 0.94%)0.63s0.66s
Check Time12.86s (± 0.67%)12.73s (± 0.66%)-0.14s (- 1.06%)12.59s12.94s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time15.45s (± 0.59%)15.09s (± 0.55%)-0.36s (- 2.32%)14.98s15.32s
Angular - node (v14.15.1, x64)
Memory used321,402k (± 0.01%)320,697k (± 0.00%)-705k (- 0.22%)320,668k320,734k
Parse Time1.91s (± 0.30%)1.80s (± 0.27%)🟩-0.11s (- 5.97%)1.79s1.81s
Bind Time0.87s (± 0.68%)0.87s (± 0.76%)-0.00s (- 0.46%)0.86s0.89s
Check Time5.19s (± 0.60%)5.08s (± 0.50%)-0.12s (- 2.23%)5.03s5.16s
Emit Time5.83s (± 0.74%)5.74s (± 0.77%)-0.09s (- 1.51%)5.66s5.83s
Total Time13.80s (± 0.45%)13.48s (± 0.49%)-0.32s (- 2.35%)13.38s13.63s
Compiler-Unions - node (v14.15.1, x64)
Memory used188,458k (± 0.62%)188,457k (± 0.62%)-1k (- 0.00%)186,496k189,777k
Parse Time0.81s (± 0.74%)0.80s (± 1.08%)-0.00s (- 0.37%)0.79s0.83s
Bind Time0.56s (± 1.50%)0.55s (± 0.66%)-0.01s (- 1.25%)0.55s0.56s
Check Time7.19s (± 0.84%)7.14s (± 0.56%)-0.04s (- 0.61%)7.03s7.24s
Emit Time2.27s (± 1.08%)2.26s (± 1.00%)-0.00s (- 0.18%)2.20s2.30s
Total Time10.82s (± 0.72%)10.76s (± 0.47%)-0.06s (- 0.57%)10.66s10.86s
Monaco - node (v14.15.1, x64)
Memory used323,157k (± 0.01%)322,460k (± 0.01%)-698k (- 0.22%)322,416k322,539k
Parse Time1.56s (± 0.53%)1.46s (± 0.41%)🟩-0.10s (- 6.33%)1.45s1.48s
Bind Time0.75s (± 0.69%)0.74s (± 0.50%)-0.00s (- 0.53%)0.74s0.75s
Check Time5.19s (± 0.54%)5.17s (± 0.43%)-0.02s (- 0.39%)5.12s5.22s
Emit Time3.07s (± 0.54%)3.07s (± 0.62%)-0.00s (- 0.13%)3.03s3.12s
Total Time10.57s (± 0.38%)10.44s (± 0.36%)-0.13s (- 1.18%)10.36s10.52s
TFS - node (v14.15.1, x64)
Memory used287,674k (± 0.00%)287,531k (± 0.01%)-144k (- 0.05%)287,467k287,568k
Parse Time1.28s (± 1.08%)1.25s (± 0.74%)-0.03s (- 2.19%)1.23s1.27s
Bind Time0.72s (± 1.01%)0.71s (± 0.48%)-0.01s (- 0.70%)0.71s0.72s
Check Time4.81s (± 0.35%)4.79s (± 0.66%)-0.02s (- 0.35%)4.72s4.88s
Emit Time3.21s (± 0.68%)3.21s (± 0.66%)+0.01s (+ 0.28%)3.17s3.27s
Total Time10.00s (± 0.25%)9.96s (± 0.34%)-0.04s (- 0.37%)9.89s10.07s
material-ui - node (v14.15.1, x64)
Memory used450,051k (± 0.06%)448,606k (± 0.00%)-1,445k (- 0.32%)448,562k448,637k
Parse Time1.98s (± 0.57%)1.80s (± 0.79%)🟩-0.18s (- 9.34%)1.75s1.82s
Bind Time0.70s (± 0.52%)0.70s (± 0.80%)+0.00s (+ 0.29%)0.69s0.71s
Check Time12.99s (± 0.66%)12.93s (± 0.73%)-0.06s (- 0.50%)12.81s13.25s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time15.67s (± 0.54%)15.42s (± 0.63%)-0.25s (- 1.58%)15.29s15.73s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-206-generic
Architecturex64
Available Memory16 GB
Available Memory2 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v10.16.3, x64)
  • Compiler-Unions - node (v12.1.0, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v14.15.1, x64)
BenchmarkNameIterations
Current4417310
Baselinemaster10

Developer Information:

Download Benchmark

@dmichon-msft

Copy link
Copy Markdown
Contributor

Whoa, that's a lot of time spent in path normalization. I suppose that's not really all that surprising, though, it's a pretty expensive operation and gets run a very large number of times during path resolution.

Comment threadsrc/compiler/path.ts Outdated
...using `relativePathSegmentRegExp`.
Bonus: use a regex to handle "/./" to avoid splitting and joining in a
common case.
When building the compiler, for example, it looks like ~95% of arguments
to `normalizePath` do not require any normalization.
@amcasey

Copy link
Copy Markdown
MemberAuthor

Force push just merges in #44149

@amcasey

Copy link
Copy Markdown
MemberAuthor

TypeScript Bot (@typescript-bot) perf test this

@typescript-bot

TypeScript Bot (typescript-bot) commented May 21, 2021

Copy link
Copy Markdown
Contributor

Heya Andrew Casey (@amcasey), I've started to run the perf test suite on this PR at 81613f7. You can monitor the build here.

Update: The results are in!

@amcasey

Copy link
Copy Markdown
MemberAuthor

TypeScript Bot (@typescript-bot) perf test this

@typescript-bot

TypeScript Bot (typescript-bot) commented May 21, 2021

Copy link
Copy Markdown
Contributor

Heya Andrew Casey (@amcasey), I've started to run the perf test suite on this PR at a098b54. You can monitor the build here.

Update: The results are in!

@typescript-bot

Copy link
Copy Markdown
Contributor

Andrew Casey (@amcasey)
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..44173

Metricmaster44173DeltaBestWorst
Angular - node (v10.16.3, x64)
Memory used345,214k (± 0.02%)343,763k (± 0.03%)-1,451k (- 0.42%)343,467k343,981k
Parse Time1.90s (± 0.57%)1.79s (± 0.53%)🟩-0.11s (- 5.63%)1.78s1.82s
Bind Time0.84s (± 0.74%)0.83s (± 0.44%)-0.00s (- 0.48%)0.83s0.84s
Check Time5.28s (± 0.36%)5.20s (± 0.48%)-0.08s (- 1.48%)5.15s5.25s
Emit Time5.53s (± 0.66%)5.50s (± 0.72%)-0.03s (- 0.54%)5.44s5.60s
Total Time13.55s (± 0.46%)13.33s (± 0.36%)-0.22s (- 1.65%)13.25s13.47s
Compiler-Unions - node (v10.16.3, x64)
Memory used200,349k (± 0.02%)200,303k (± 0.06%)-46k (- 0.02%)199,885k200,455k
Parse Time0.78s (± 0.75%)0.78s (± 0.99%)+0.00s (+ 0.51%)0.76s0.80s
Bind Time0.53s (± 0.84%)0.53s (± 1.10%)-0.00s (- 0.19%)0.52s0.54s
Check Time7.55s (± 0.69%)7.52s (± 0.63%)-0.03s (- 0.34%)7.46s7.70s
Emit Time2.25s (± 1.63%)2.24s (± 0.89%)-0.01s (- 0.36%)2.21s2.28s
Total Time11.10s (± 0.60%)11.07s (± 0.52%)-0.03s (- 0.29%)11.00s11.28s
Monaco - node (v10.16.3, x64)
Memory used341,679k (± 0.01%)340,486k (± 0.03%)-1,193k (- 0.35%)340,215k340,749k
Parse Time1.55s (± 0.39%)1.46s (± 0.61%)🟩-0.09s (- 5.70%)1.44s1.47s
Bind Time0.75s (± 1.07%)0.74s (± 0.88%)-0.01s (- 1.34%)0.72s0.75s
Check Time5.42s (± 0.46%)5.33s (± 0.74%)-0.09s (- 1.66%)5.22s5.40s
Emit Time3.00s (± 1.11%)2.97s (± 1.36%)-0.04s (- 1.17%)2.90s3.07s
Total Time10.72s (± 0.43%)10.49s (± 0.42%)-0.22s (- 2.09%)10.38s10.61s
TFS - node (v10.16.3, x64)
Memory used304,218k (± 0.03%)304,017k (± 0.01%)-201k (- 0.07%)303,964k304,107k
Parse Time1.21s (± 0.69%)1.18s (± 0.51%)-0.03s (- 2.49%)1.16s1.19s
Bind Time0.71s (± 0.70%)0.70s (± 0.70%)-0.00s (- 0.28%)0.69s0.71s
Check Time4.88s (± 0.49%)4.88s (± 0.36%)+0.00s (+ 0.08%)4.84s4.91s
Emit Time3.14s (± 1.31%)3.06s (± 1.26%)-0.08s (- 2.51%)2.99s3.16s
Total Time9.93s (± 0.63%)9.82s (± 0.36%)-0.11s (- 1.12%)9.74s9.90s
material-ui - node (v10.16.3, x64)
Memory used474,141k (± 0.02%)471,483k (± 0.02%)-2,658k (- 0.56%)471,347k471,648k
Parse Time1.92s (± 0.84%)1.72s (± 0.46%)🟩-0.20s (-10.36%)1.71s1.74s
Bind Time0.65s (± 0.68%)0.66s (± 0.71%)+0.01s (+ 1.23%)0.65s0.67s
Check Time14.25s (± 0.49%)14.27s (± 0.50%)+0.02s (+ 0.17%)14.16s14.43s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time16.82s (± 0.45%)16.66s (± 0.48%)-0.17s (- 1.00%)16.53s16.84s
Angular - node (v12.1.0, x64)
Memory used322,726k (± 0.03%)322,043k (± 0.03%)-683k (- 0.21%)321,817k322,165k
Parse Time1.89s (± 0.53%)1.78s (± 0.82%)🟩-0.11s (- 5.97%)1.75s1.82s
Bind Time0.82s (± 1.15%)0.83s (± 0.74%)+0.01s (+ 0.73%)0.82s0.84s
Check Time5.18s (± 0.43%)5.09s (± 0.41%)-0.09s (- 1.76%)5.03s5.13s
Emit Time5.78s (± 0.77%)5.69s (± 0.90%)-0.08s (- 1.44%)5.60s5.84s
Total Time13.67s (± 0.43%)13.39s (± 0.59%)-0.28s (- 2.05%)13.24s13.62s
Compiler-Unions - node (v12.1.0, x64)
Memory used187,676k (± 0.10%)187,836k (± 0.07%)+160k (+ 0.09%)187,416k188,095k
Parse Time0.77s (± 0.58%)0.77s (± 0.47%)-0.01s (- 0.78%)0.76s0.77s
Bind Time0.53s (± 0.89%)0.53s (± 1.05%)-0.00s (- 0.38%)0.52s0.54s
Check Time7.00s (± 0.48%)7.02s (± 0.52%)+0.02s (+ 0.26%)6.97s7.09s
Emit Time2.24s (± 0.91%)2.25s (± 0.76%)+0.01s (+ 0.22%)2.22s2.28s
Total Time10.54s (± 0.42%)10.56s (± 0.41%)+0.02s (+ 0.20%)10.48s10.65s
Monaco - node (v12.1.0, x64)
Memory used324,056k (± 0.03%)323,509k (± 0.02%)-547k (- 0.17%)323,391k323,676k
Parse Time1.53s (± 0.38%)1.41s (± 0.61%)🟩-0.12s (- 7.89%)1.40s1.44s
Bind Time0.72s (± 0.50%)0.71s (± 0.52%)-0.01s (- 1.24%)0.71s0.72s
Check Time5.24s (± 0.25%)5.19s (± 0.30%)-0.05s (- 1.03%)5.14s5.22s
Emit Time3.03s (± 0.36%)3.01s (± 0.82%)-0.02s (- 0.66%)2.97s3.07s
Total Time10.52s (± 0.18%)10.32s (± 0.33%)-0.20s (- 1.88%)10.24s10.39s
TFS - node (v12.1.0, x64)
Memory used288,706k (± 0.02%)288,597k (± 0.02%)-110k (- 0.04%)288,417k288,735k
Parse Time1.21s (± 0.95%)1.18s (± 0.64%)-0.03s (- 2.39%)1.16s1.20s
Bind Time0.69s (± 0.84%)0.69s (± 1.18%)-0.00s (- 0.43%)0.68s0.72s
Check Time4.79s (± 0.51%)4.78s (± 0.53%)-0.02s (- 0.33%)4.73s4.84s
Emit Time3.14s (± 0.95%)3.12s (± 1.07%)-0.01s (- 0.38%)3.07s3.24s
Total Time9.84s (± 0.45%)9.77s (± 0.55%)-0.06s (- 0.65%)9.68s9.95s
material-ui - node (v12.1.0, x64)
Memory used451,879k (± 0.05%)450,267k (± 0.02%)-1,612k (- 0.36%)450,082k450,435k
Parse Time1.94s (± 0.35%)1.71s (± 0.41%)🟩-0.23s (-11.73%)1.70s1.73s
Bind Time0.64s (± 0.96%)0.64s (± 0.63%)-0.00s (- 0.31%)0.63s0.65s
Check Time12.90s (± 0.80%)12.76s (± 0.68%)-0.14s (- 1.08%)12.65s13.06s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time15.48s (± 0.65%)15.11s (± 0.60%)-0.36s (- 2.36%)15.00s15.42s
Angular - node (v14.15.1, x64)
Memory used321,451k (± 0.01%)320,750k (± 0.00%)-701k (- 0.22%)320,722k320,774k
Parse Time1.89s (± 0.50%)1.78s (± 0.49%)🟩-0.11s (- 6.02%)1.77s1.81s
Bind Time0.87s (± 0.60%)0.87s (± 0.39%)-0.00s (- 0.46%)0.86s0.87s
Check Time5.17s (± 0.50%)5.11s (± 0.53%)-0.07s (- 1.28%)5.06s5.16s
Emit Time5.83s (± 1.32%)5.73s (± 0.79%)-0.10s (- 1.73%)5.65s5.83s
Total Time13.76s (± 0.63%)13.48s (± 0.53%)-0.28s (- 2.06%)13.38s13.67s
Compiler-Unions - node (v14.15.1, x64)
Memory used188,813k (± 0.58%)188,769k (± 0.57%)-45k (- 0.02%)186,514k189,800k
Parse Time0.80s (± 0.72%)0.80s (± 0.43%)-0.00s (- 0.38%)0.79s0.80s
Bind Time0.56s (± 0.61%)0.56s (± 1.07%)-0.00s (- 0.18%)0.55s0.57s
Check Time7.13s (± 0.73%)7.14s (± 0.65%)+0.01s (+ 0.17%)7.08s7.25s
Emit Time2.26s (± 0.73%)2.26s (± 0.94%)+0.01s (+ 0.22%)2.22s2.31s
Total Time10.75s (± 0.53%)10.76s (± 0.51%)+0.01s (+ 0.11%)10.68s10.91s
Monaco - node (v14.15.1, x64)
Memory used323,156k (± 0.01%)322,491k (± 0.01%)-665k (- 0.21%)322,433k322,590k
Parse Time1.57s (± 0.86%)1.46s (± 0.61%)🟩-0.11s (- 6.90%)1.44s1.48s
Bind Time0.75s (± 0.97%)0.75s (± 0.80%)-0.00s (- 0.40%)0.73s0.76s
Check Time5.21s (± 0.51%)5.17s (± 0.64%)-0.03s (- 0.65%)5.13s5.27s
Emit Time3.06s (± 0.90%)3.06s (± 0.92%)-0.01s (- 0.20%)3.01s3.12s
Total Time10.58s (± 0.51%)10.43s (± 0.53%)-0.15s (- 1.41%)10.32s10.55s
TFS - node (v14.15.1, x64)
Memory used287,704k (± 0.01%)287,583k (± 0.01%)-121k (- 0.04%)287,546k287,633k
Parse Time1.26s (± 0.61%)1.25s (± 1.66%)-0.01s (- 0.56%)1.24s1.31s
Bind Time0.72s (± 0.81%)0.71s (± 0.47%)-0.01s (- 0.98%)0.70s0.72s
Check Time4.81s (± 0.40%)4.79s (± 0.35%)-0.02s (- 0.33%)4.76s4.83s
Emit Time3.20s (± 0.70%)3.20s (± 0.77%)-0.00s (- 0.06%)3.14s3.26s
Total Time9.99s (± 0.29%)9.96s (± 0.33%)-0.03s (- 0.32%)9.89s10.03s
material-ui - node (v14.15.1, x64)
Memory used450,107k (± 0.06%)448,558k (± 0.04%)-1,549k (- 0.34%)447,926k448,662k
Parse Time1.98s (± 0.44%)1.78s (± 0.45%)🟩-0.20s (-10.29%)1.76s1.80s
Bind Time0.70s (± 0.67%)0.69s (± 0.58%)-0.01s (- 1.57%)0.68s0.70s
Check Time13.01s (± 0.61%)12.96s (± 0.50%)-0.05s (- 0.37%)12.86s13.13s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time15.69s (± 0.50%)15.43s (± 0.44%)-0.26s (- 1.66%)15.32s15.61s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-206-generic
Architecturex64
Available Memory16 GB
Available Memory2 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v10.16.3, x64)
  • Compiler-Unions - node (v12.1.0, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v14.15.1, x64)
BenchmarkNameIterations
Current4417310
Baselinemaster10

Developer Information:

Download Benchmark

@typescript-bot

Copy link
Copy Markdown
Contributor

Andrew Casey (@amcasey)
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..44173

Metricmaster44173DeltaBestWorst
Angular - node (v10.16.3, x64)
Memory used345,202k (± 0.01%)343,773k (± 0.02%)-1,429k (- 0.41%)343,613k343,905k
Parse Time1.91s (± 0.65%)1.82s (± 0.49%)🟩-0.10s (- 5.07%)1.80s1.84s
Bind Time0.84s (± 0.66%)0.84s (± 0.81%)-0.01s (- 0.71%)0.82s0.85s
Check Time5.29s (± 0.48%)5.21s (± 0.48%)-0.09s (- 1.64%)5.17s5.26s
Emit Time5.56s (± 0.69%)5.49s (± 0.69%)-0.08s (- 1.38%)5.39s5.58s
Total Time13.61s (± 0.45%)13.35s (± 0.37%)-0.27s (- 1.95%)13.23s13.44s
Compiler-Unions - node (v10.16.3, x64)
Memory used200,417k (± 0.03%)200,339k (± 0.07%)-78k (- 0.04%)199,957k200,583k
Parse Time0.78s (± 0.60%)0.78s (± 1.14%)+0.00s (+ 0.51%)0.76s0.81s
Bind Time0.53s (± 1.04%)0.53s (± 1.22%)0.00s ( 0.00%)0.52s0.55s
Check Time7.58s (± 0.62%)7.60s (± 0.63%)+0.02s (+ 0.28%)7.50s7.69s
Emit Time2.25s (± 0.94%)2.25s (± 1.05%)+0.00s (+ 0.04%)2.19s2.29s
Total Time11.13s (± 0.50%)11.15s (± 0.50%)+0.02s (+ 0.20%)11.03s11.26s
Monaco - node (v10.16.3, x64)
Memory used341,687k (± 0.01%)340,448k (± 0.01%)-1,239k (- 0.36%)340,308k340,513k
Parse Time1.56s (± 0.92%)1.46s (± 0.58%)🟩-0.10s (- 6.29%)1.44s1.48s
Bind Time0.74s (± 0.63%)0.74s (± 0.98%)+0.00s (+ 0.27%)0.73s0.76s
Check Time5.43s (± 0.47%)5.38s (± 0.60%)-0.05s (- 0.98%)5.32s5.46s
Emit Time2.97s (± 0.66%)2.99s (± 1.13%)+0.02s (+ 0.71%)2.92s3.06s
Total Time10.71s (± 0.40%)10.58s (± 0.42%)-0.13s (- 1.24%)10.50s10.67s
TFS - node (v10.16.3, x64)
Memory used304,242k (± 0.02%)303,987k (± 0.03%)-255k (- 0.08%)303,811k304,138k
Parse Time1.21s (± 0.55%)1.18s (± 0.64%)-0.03s (- 2.15%)1.17s1.20s
Bind Time0.70s (± 0.74%)0.71s (± 0.73%)+0.01s (+ 1.43%)0.70s0.72s
Check Time4.87s (± 0.61%)4.88s (± 0.53%)+0.01s (+ 0.25%)4.84s4.94s
Emit Time3.10s (± 1.34%)3.08s (± 1.07%)-0.02s (- 0.74%)3.03s3.19s
Total Time9.89s (± 0.53%)9.85s (± 0.45%)-0.03s (- 0.33%)9.77s9.98s
material-ui - node (v10.16.3, x64)
Memory used474,183k (± 0.01%)471,510k (± 0.02%)-2,674k (- 0.56%)471,247k471,613k
Parse Time1.93s (± 0.64%)1.73s (± 0.60%)🟩-0.20s (-10.47%)1.71s1.76s
Bind Time0.65s (± 1.00%)0.66s (± 1.33%)+0.02s (+ 2.31%)0.65s0.69s
Check Time14.27s (± 0.44%)14.25s (± 0.54%)-0.02s (- 0.12%)14.13s14.45s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time16.85s (± 0.39%)16.64s (± 0.48%)-0.20s (- 1.21%)16.54s16.85s
Angular - node (v12.1.0, x64)
Memory used322,660k (± 0.03%)322,020k (± 0.02%)-640k (- 0.20%)321,836k322,178k
Parse Time1.90s (± 0.27%)1.78s (± 0.78%)🟩-0.12s (- 6.42%)1.75s1.81s
Bind Time0.82s (± 0.58%)0.82s (± 0.70%)+0.01s (+ 0.73%)0.81s0.84s
Check Time5.18s (± 0.40%)5.08s (± 0.52%)-0.09s (- 1.78%)5.03s5.15s
Emit Time5.73s (± 0.57%)5.67s (± 0.65%)-0.06s (- 1.10%)5.59s5.79s
Total Time13.63s (± 0.31%)13.36s (± 0.47%)-0.27s (- 1.97%)13.24s13.52s
Compiler-Unions - node (v12.1.0, x64)
Memory used187,692k (± 0.14%)187,787k (± 0.09%)+95k (+ 0.05%)187,296k188,098k
Parse Time0.77s (± 0.75%)0.78s (± 1.07%)+0.01s (+ 0.78%)0.76s0.79s
Bind Time0.53s (± 0.75%)0.53s (± 0.42%)0.00s ( 0.00%)0.53s0.54s
Check Time7.09s (± 0.79%)7.11s (± 0.68%)+0.02s (+ 0.23%)7.01s7.23s
Emit Time2.25s (± 0.72%)2.25s (± 0.70%)-0.00s (- 0.09%)2.22s2.28s
Total Time10.65s (± 0.58%)10.66s (± 0.59%)+0.01s (+ 0.14%)10.53s10.80s
Monaco - node (v12.1.0, x64)
Memory used324,004k (± 0.02%)323,451k (± 0.02%)-553k (- 0.17%)323,230k323,634k
Parse Time1.53s (± 0.84%)1.43s (± 0.77%)🟩-0.10s (- 6.41%)1.40s1.45s
Bind Time0.72s (± 0.82%)0.72s (± 0.55%)-0.00s (- 0.41%)0.71s0.73s
Check Time5.25s (± 0.32%)5.20s (± 0.46%)-0.05s (- 0.91%)5.16s5.25s
Emit Time3.02s (± 0.83%)3.01s (± 0.76%)-0.02s (- 0.60%)2.97s3.05s
Total Time10.52s (± 0.31%)10.36s (± 0.37%)-0.16s (- 1.56%)10.27s10.46s
TFS - node (v12.1.0, x64)
Memory used288,719k (± 0.01%)288,509k (± 0.02%)-210k (- 0.07%)288,391k288,604k
Parse Time1.22s (± 0.68%)1.19s (± 1.08%)-0.03s (- 2.06%)1.16s1.22s
Bind Time0.69s (± 0.64%)0.69s (± 1.19%)-0.01s (- 0.72%)0.67s0.71s
Check Time4.79s (± 0.43%)4.77s (± 0.67%)-0.01s (- 0.25%)4.69s4.85s
Emit Time3.12s (± 0.56%)3.10s (± 0.59%)-0.02s (- 0.58%)3.06s3.16s
Total Time9.82s (± 0.30%)9.76s (± 0.46%)-0.06s (- 0.59%)9.67s9.86s
material-ui - node (v12.1.0, x64)
Memory used452,015k (± 0.01%)450,213k (± 0.05%)-1,802k (- 0.40%)449,260k450,499k
Parse Time1.93s (± 0.50%)1.73s (± 0.54%)🟩-0.20s (-10.42%)1.71s1.75s
Bind Time0.63s (± 1.50%)0.64s (± 0.57%)+0.00s (+ 0.32%)0.63s0.64s
Check Time12.91s (± 0.77%)12.84s (± 0.69%)-0.08s (- 0.60%)12.66s12.99s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time15.48s (± 0.65%)15.20s (± 0.62%)-0.27s (- 1.77%)15.02s15.38s
Angular - node (v14.15.1, x64)
Memory used321,456k (± 0.01%)320,743k (± 0.00%)-713k (- 0.22%)320,705k320,772k
Parse Time1.90s (± 0.82%)1.81s (± 0.49%)🟩-0.09s (- 4.89%)1.79s1.83s
Bind Time0.87s (± 0.34%)0.87s (± 0.66%)+0.00s (+ 0.11%)0.86s0.89s
Check Time5.21s (± 0.55%)5.13s (± 0.37%)-0.07s (- 1.42%)5.08s5.16s
Emit Time5.79s (± 0.66%)5.82s (± 1.50%)+0.03s (+ 0.52%)5.67s6.12s
Total Time13.77s (± 0.37%)13.64s (± 0.73%)-0.14s (- 0.99%)13.42s13.95s
Compiler-Unions - node (v14.15.1, x64)
Memory used189,143k (± 0.50%)188,803k (± 0.58%)-339k (- 0.18%)186,530k189,805k
Parse Time0.80s (± 0.45%)0.80s (± 0.56%)-0.00s (- 0.25%)0.79s0.81s
Bind Time0.56s (± 0.65%)0.56s (± 0.93%)+0.01s (+ 0.90%)0.55s0.57s
Check Time7.17s (± 0.63%)7.17s (± 0.69%)+0.00s (+ 0.07%)7.09s7.33s
Emit Time2.25s (± 0.84%)2.26s (± 0.94%)+0.01s (+ 0.36%)2.22s2.33s
Total Time10.77s (± 0.55%)10.79s (± 0.57%)+0.01s (+ 0.13%)10.67s10.94s
Monaco - node (v14.15.1, x64)
Memory used323,174k (± 0.01%)322,497k (± 0.01%)-677k (- 0.21%)322,447k322,537k
Parse Time1.57s (± 0.86%)1.47s (± 0.70%)🟩-0.10s (- 6.49%)1.45s1.49s
Bind Time0.75s (± 0.94%)0.74s (± 0.66%)-0.01s (- 0.67%)0.73s0.75s
Check Time5.23s (± 0.35%)5.19s (± 0.59%)-0.04s (- 0.75%)5.12s5.26s
Emit Time3.07s (± 0.46%)3.08s (± 0.47%)+0.01s (+ 0.46%)3.05s3.13s
Total Time10.62s (± 0.29%)10.48s (± 0.39%)-0.13s (- 1.27%)10.42s10.62s
TFS - node (v14.15.1, x64)
Memory used287,743k (± 0.01%)287,591k (± 0.01%)-152k (- 0.05%)287,538k287,655k
Parse Time1.26s (± 0.69%)1.25s (± 0.95%)-0.01s (- 1.11%)1.22s1.27s
Bind Time0.71s (± 0.94%)0.71s (± 0.51%)+0.00s (+ 0.14%)0.71s0.72s
Check Time4.86s (± 0.59%)4.81s (± 0.40%)-0.06s (- 1.15%)4.74s4.83s
Emit Time3.21s (± 0.93%)3.21s (± 0.69%)+0.01s (+ 0.16%)3.18s3.26s
Total Time10.05s (± 0.41%)9.98s (± 0.42%)-0.07s (- 0.65%)9.86s10.03s
material-ui - node (v14.15.1, x64)
Memory used450,177k (± 0.03%)448,631k (± 0.00%)-1,546k (- 0.34%)448,603k448,675k
Parse Time1.98s (± 0.62%)1.79s (± 0.53%)🟩-0.20s (- 9.94%)1.76s1.81s
Bind Time0.70s (± 0.98%)0.69s (± 0.84%)-0.00s (- 0.43%)0.68s0.71s
Check Time13.13s (± 0.56%)12.99s (± 0.56%)-0.14s (- 1.09%)12.85s13.20s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time15.81s (± 0.48%)15.46s (± 0.46%)-0.34s (- 2.18%)15.35s15.68s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-206-generic
Architecturex64
Available Memory16 GB
Available Memory2 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v10.16.3, x64)
  • Compiler-Unions - node (v12.1.0, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v14.15.1, x64)
BenchmarkNameIterations
Current4417310
Baselinemaster10

Developer Information:

Download Benchmark

@amcasey
Andrew Casey (amcasey) merged commit 7954f0c into microsoft:masterMay 24, 2021
@amcasey
Andrew Casey (amcasey) deleted the NormalizePath branch May 24, 2021 16:38
@microsoftMicrosoft (microsoft) locked as resolved and limited conversation to collaborators Oct 21, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Author: TeamFor Uncommitted BugPR for untriaged, rejected, closed or missing bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@amcasey@typescript-bot@dmichon-msft@rbuckton