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

Enable Node.js/v8 compile caching via entrypoint shims#59720

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
jakebailey merged 8 commits intomicrosoft:mainfromjakebailey:v8-compile-cache
Sep 26, 2024

Conversation

@jakebailey
Copy link
Member

@jakebaileyjakebailey commentedAug 22, 2024
edited
Loading

This makes use ofnodejs/node#54501 by converting our larger entrypoints (tsc,tsserver,typingsInstaller) into shims which callrequire("node:module").enableCompileCache(), thenrequire the actual code. Our entrypoints are assumed to always be run in Node (or a compatible runtime), so this is safe.

This gives roughly a 2.5x startup time boost.

Benchmark 1: node ./built/local/_tsc.js --version  Time (mean ± σ):     122.2 ms ±   1.5 ms    [User: 101.7 ms, System: 13.0 ms]  Range (min … max):   119.3 ms … 132.3 ms    200 runs Benchmark 2: node ./built/local/tsc.js --version  Time (mean ± σ):      48.4 ms ±   1.0 ms    [User: 34.0 ms, System: 11.1 ms]  Range (min … max):    45.7 ms …  52.8 ms    200 runs Summary  node ./built/local/tsc.js --version ran    2.52 ± 0.06 times faster than node ./built/local/_tsc.js --version
Benchmark 1 (83 runs): node ./built/local/_tsc.js --version  measurement          mean ± σ            min … max           outliers         delta  wall_time           120ms ± 1.43ms     118ms …  128ms          2 ( 2%)        0%  peak_rss           75.1MB ±  648KB    74.6MB … 79.3MB          2 ( 2%)        0%  cpu_cycles          486M  ± 3.27M      479M  …  499M           2 ( 2%)        0%  instructions        658M  ±  265K      658M  …  659M           0 ( 0%)        0%  cache_references   10.0M  ±  192K     9.45M  … 10.7M           2 ( 2%)        0%  cache_misses       1.19M  ±  122K     1.00M  … 1.64M           1 ( 1%)        0%  branch_misses      3.05M  ± 8.76K     3.01M  … 3.07M           1 ( 1%)        0%Benchmark 2 (208 runs): node ./built/local/tsc.js --version  measurement          mean ± σ            min … max           outliers         delta  wall_time          48.1ms ± 1.23ms    45.5ms … 52.7ms          5 ( 2%)        ⚡- 60.0% ±  0.3%  peak_rss           64.7MB ±  448KB    63.1MB … 66.9MB         20 (10%)        ⚡- 13.9% ±  0.2%  cpu_cycles          166M  ± 3.95M      159M  …  183M           4 ( 2%)        ⚡- 65.8% ±  0.2%  instructions        231M  ±  597K      230M  …  233M           2 ( 1%)        ⚡- 64.9% ±  0.0%  cache_references   7.37M  ±  151K     7.08M  … 7.77M           0 ( 0%)        ⚡- 26.4% ±  0.4%  cache_misses        666K  ±  133K      465K  … 1.13M           2 ( 1%)        ⚡- 43.8% ±  2.8%  branch_misses       949K  ± 9.10K      930K  …  978K           2 ( 1%)        ⚡- 68.9% ±  0.1%
Benchmark 1: echo '{"seq": 1, "command": "status"}' | node ./built/local/_tsserver.js --disableAutomaticTypingAcquisition  Time (mean ± σ):     206.0 ms ±   8.5 ms    [User: 176.2 ms, System: 24.4 ms]  Range (min … max):   194.8 ms … 250.7 ms    200 runs Benchmark 2: echo '{"seq": 1, "command": "status"}' | node ./built/local/tsserver.js --disableAutomaticTypingAcquisition  Time (mean ± σ):      83.8 ms ±   1.8 ms    [User: 66.9 ms, System: 18.1 ms]  Range (min … max):    80.9 ms …  92.4 ms    200 runs Summary  echo '{"seq": 1, "command": "status"}' | node ./built/local/tsserver.js --disableAutomaticTypingAcquisition ran    2.46 ± 0.12 times faster than echo '{"seq": 1, "command": "status"}' | node ./built/local/_tsserver.js --disableAutomaticTypingAcquisition

Gotchas:

  • VS Code or other clients who consume us but trim unused files will need to be updated to ensure to include_tsc.js,_tsserver.js,_typingsInstaller.js
  • People who patch our package will break until their packages are updated (yarn).
  • I have not added this to our libraries. It would be weird for that to start caching someone else's process, and it's not clear how one would even do it with an ESM based API.

ExE-Boss reacted with thumbs up emojitonivj5, JoshuaKGoldberg, zyhou, andriyor, Stanzilla, wrslatz, styfle, capaj, MattiasBuelens, belaczek, and 20 more reacted with heart emojipetamoriken and khakimio reacted with eyes emoji
@jakebaileyjakebailey marked this pull request as draftAugust 22, 2024 19:32
@jakebaileyjakebailey marked this pull request as ready for reviewAugust 28, 2024 23:26
@jakebailey
Copy link
MemberAuthor

nodejs/node#54501 was merged into Node, so this API should end up available in a later version. I've marked this PR as ready for review, if we want to think about whether or not it's worth the extra shim / indirection.

@jakebailey
Copy link
MemberAuthor

jakebailey commentedAug 30, 2024
edited
Loading

Based on the design meeting, this seems like a good idea. Before we do this we'll need to make sure downstream users (@mjbvz,@zkat) know these new files will exist and cannot be deleted.

That and patchers will break until they know to patch_tsc.js (or whatever name we choose).

letoutput=options.output;
if(options.enableCompileCache){
constoriginalOutput=output;
output=path.join(path.dirname(output),"_"+path.basename(output));
Copy link
MemberAuthor

Choose a reason for hiding this comment

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

This was just an expedient name choice; I can also remove the extension and then make it liketsc_.js which may sort better.

Copy link
Member

Choose a reason for hiding this comment

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

I was going to say that_tsc tab-completes better on the command-line, though, because it doesn't interfere withtypes<TAB> -- but there's so much stuff in built/local that it doesn't actually make a difference.

@jakebailey
Copy link
MemberAuthor

@typescript-bot test startup-only hosts=node@20.17.0,node@22.8.0

@jakebailey
Copy link
MemberAuthor

@typescript-bot perf test startup-only hosts=node@20.17.0,node@22.8.0

typescript-bot reacted with thumbs up emoji

@typescript-bot
Copy link
Collaborator

typescript-bot commentedSep 17, 2024
edited
Loading

Starting jobs; this comment will be updated as builds start and complete.

CommandStatusResults
perf test startup-only hosts=node@20.17.0,node@22.8.0✅ Started👀 Results

@typescript-bot
Copy link
Collaborator

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

Here they are:

startup

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
tsc-startup - node (v20.17.0, x64)
Execution time151.05ms (± 0.17%)151.78ms (± 0.16%)+0.73ms (+ 0.48%)150.97ms157.09msp=0.000 n=600
tsserver-startup - node (v20.17.0, x64)
Execution time295.36ms (± 0.29%)295.29ms (± 0.29%)~287.31ms299.45msp=0.276 n=600
tsserverlibrary-startup - node (v20.17.0, x64)
Execution time228.41ms (± 0.11%)228.33ms (± 0.12%)-0.08ms (- 0.04%)227.46ms233.35msp=0.000 n=600
typescript-startup - node (v20.17.0, x64)
Execution time227.09ms (± 0.11%)227.16ms (± 0.13%)+0.07ms (+ 0.03%)226.16ms232.30msp=0.005 n=600
tsc-startup - node (v22.8.0, x64)
Execution time150.94ms (± 0.15%)77.21ms (± 0.24%)🟩-73.73ms (-48.85%)76.67ms81.80msp=0.000 n=600
tsserver-startup - node (v22.8.0, x64)
Execution time292.90ms (± 0.33%)156.89ms (± 0.40%)🟩-136.01ms (-46.44%)149.46ms159.39msp=0.000 n=600
tsserverlibrary-startup - node (v22.8.0, x64)
Execution time280.01ms (± 0.30%)279.93ms (± 0.30%)-0.08ms (- 0.03%)272.29ms284.21msp=0.018 n=600
typescript-startup - node (v22.8.0, x64)
Execution time279.74ms (± 0.30%)279.82ms (± 0.32%)+0.09ms (+ 0.03%)272.14ms283.32msp=0.000 n=600
System info unknown
Hosts
  • node (v20.17.0, x64)
  • node (v22.8.0, x64)
Scenarios
  • tsc-startup - node (v20.17.0, x64)
  • tsserver-startup - node (v20.17.0, x64)
  • tsserverlibrary-startup - node (v20.17.0, x64)
  • typescript-startup - node (v20.17.0, x64)
  • tsc-startup - node (v22.8.0, x64)
  • tsserver-startup - node (v22.8.0, x64)
  • tsserverlibrary-startup - node (v22.8.0, x64)
  • typescript-startup - node (v22.8.0, x64)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

Developer Information:

Download Benchmarks

@jakebailey
Copy link
MemberAuthor

As a note to self, if/when we switch to ESM whenrequire(ESM) is stable, to ensurerequire("node_modules/typescript/lib/tsc.js") still works (is synchronous), we'd need to write this:

const{ createRequire, enableCompileCache}=process.getBuiltinModule("node:module");enableCompileCache();createRequire(import.meta.url)("./_tsc.js");

letoutput=options.output;
if(options.enableCompileCache){
constoriginalOutput=output;
output=path.join(path.dirname(output),"_"+path.basename(output));
Copy link
Member

Choose a reason for hiding this comment

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

I was going to say that_tsc tab-completes better on the command-line, though, because it doesn't interfere withtypes<TAB> -- but there's so much stuff in built/local that it doesn't actually make a difference.

@jakebailey
Copy link
MemberAuthor

@typescript-bot perf test this faster hosts=node@20.17.0,node@22.8.0

typescript-bot reacted with thumbs up emoji

@typescript-bot
Copy link
Collaborator

typescript-bot commentedSep 26, 2024
edited
Loading

Starting jobs; this comment will be updated as builds start and complete.

CommandStatusResults
perf test this faster hosts=node@20.17.0,node@22.8.0✅ Started👀 Results

@typescript-bot
Copy link
Collaborator

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

Here they are:

tsc

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
Compiler-Unions - node (v20.17.0, x64)
Errors3030~~~p=1.000 n=6
Symbols62,34062,340~~~p=1.000 n=6
Types50,37850,378~~~p=1.000 n=6
Memory used190,848k (± 0.01%)191,508k (± 0.78%)+660k (+ 0.35%)190,876k194,556kp=0.005 n=6
Parse Time1.37s (± 0.55%)1.36s (± 1.08%)~1.33s1.37sp=0.062 n=6
Bind Time0.73s (± 1.14%)0.73s (± 0.74%)~0.73s0.74sp=0.855 n=6
Check Time9.24s (± 0.29%)9.25s (± 0.24%)~9.22s9.28sp=0.570 n=6
Emit Time2.80s (± 0.42%)2.80s (± 0.42%)~2.78s2.81sp=0.804 n=6
Total Time14.15s (± 0.19%)14.14s (± 0.29%)~14.07s14.18sp=1.000 n=6
angular-1 - node (v20.17.0, x64)
Errors77~~~p=1.000 n=6
Symbols947,102947,102~~~p=1.000 n=6
Types410,738410,738~~~p=1.000 n=6
Memory used1,221,929k (± 0.00%)1,221,979k (± 0.00%)+50k (+ 0.00%)1,221,913k1,222,011kp=0.031 n=6
Parse Time6.97s (± 1.04%)6.94s (± 0.34%)~6.91s6.96sp=0.572 n=6
Bind Time2.00s (± 0.45%)2.00s (± 0.20%)~2.00s2.01sp=0.787 n=6
Check Time30.67s (± 0.39%)30.68s (± 0.38%)~30.57s30.86sp=1.000 n=6
Emit Time14.61s (± 0.46%)14.55s (± 0.47%)~14.50s14.68sp=0.170 n=6
Total Time54.25s (± 0.29%)54.17s (± 0.22%)~54.02s54.27sp=0.335 n=6
mui-docs - node (v20.17.0, x64)
Errors00~~~p=1.000 n=6
Symbols2,521,6512,521,651~~~p=1.000 n=6
Types936,037936,037~~~p=1.000 n=6
Memory used2,348,925k (± 0.01%)2,349,004k (± 0.00%)~2,348,850k2,349,070kp=0.298 n=6
Parse Time9.49s (± 1.79%)9.46s (± 0.35%)~9.42s9.50sp=0.686 n=6
Bind Time2.19s (± 0.55%)2.19s (± 0.45%)~2.18s2.20sp=0.720 n=6
Check Time73.25s (± 1.57%)72.94s (± 1.59%)~71.89s75.09sp=0.936 n=6
Emit Time0.62s (±141.02%)0.26s (± 1.56%)~0.26s0.27sp=0.527 n=6
Total Time85.55s (± 1.49%)84.86s (± 1.37%)~83.78s87.00sp=0.471 n=6
self-build-src - node (v20.17.0, x64)
Errors00~~~p=1.000 n=6
Symbols1,250,4741,250,474~~~p=1.000 n=6
Types265,039265,039~~~p=1.000 n=6
Memory used2,404,144k (± 2.61%)2,378,192k (± 0.03%)~2,377,652k2,379,449kp=0.378 n=6
Parse Time5.42s (± 0.80%)5.39s (± 0.68%)~5.34s5.44sp=0.199 n=6
Bind Time2.04s (± 0.62%)2.03s (± 0.25%)~2.02s2.03sp=0.055 n=6
Check Time34.46s (± 0.28%)34.41s (± 0.20%)~34.31s34.47sp=0.422 n=6
Emit Time3.03s (± 2.70%)3.07s (± 3.61%)~2.93s3.22sp=0.378 n=6
Total Time44.98s (± 0.19%)44.90s (± 0.29%)~44.73s45.08sp=0.378 n=6
self-build-src-public-api - node (v20.17.0, x64)
Errors00~~~p=1.000 n=6
Symbols1,250,4741,250,474~~~p=1.000 n=6
Types265,039265,039~~~p=1.000 n=6
Memory used2,534,493k (± 5.77%)2,511,825k (± 5.81%)~2,448,791k2,810,235kp=0.689 n=6
Parse Time6.79s (± 1.58%)6.80s (± 1.90%)~6.64s6.97sp=0.936 n=6
Bind Time2.24s (± 1.67%)2.26s (± 1.02%)~2.23s2.30sp=0.228 n=6
Check Time41.61s (± 1.15%)41.85s (± 0.84%)~41.45s42.37sp=0.298 n=6
Emit Time3.77s (± 3.12%)3.62s (± 1.13%)🟩-0.15s (- 3.94%)3.56s3.65sp=0.005 n=6
Total Time54.41s (± 0.81%)54.53s (± 0.60%)~54.19s55.04sp=0.575 n=6
self-compiler - node (v20.17.0, x64)
Errors00~~~p=1.000 n=6
Symbols260,972260,972~~~p=1.000 n=6
Types106,405106,405~~~p=1.000 n=6
Memory used436,323k (± 0.29%)436,365k (± 0.28%)~434,716k437,310kp=0.810 n=6
Parse Time3.68s (± 1.04%)3.71s (± 1.69%)~3.61s3.79sp=0.375 n=6
Bind Time1.34s (± 1.10%)1.33s (± 1.11%)~1.30s1.34sp=0.195 n=6
Check Time17.95s (± 0.32%)17.94s (± 0.33%)~17.87s18.01sp=0.574 n=6
Emit Time1.58s (± 1.35%)1.57s (± 1.61%)~1.53s1.60sp=0.413 n=6
Total Time24.55s (± 0.32%)24.55s (± 0.41%)~24.40s24.65sp=0.936 n=6
ts-pre-modules - node (v20.17.0, x64)
Errors6868~~~p=1.000 n=6
Symbols225,916225,916~~~p=1.000 n=6
Types94,41494,414~~~p=1.000 n=6
Memory used368,965k (± 0.01%)368,962k (± 0.01%)~368,933k369,013kp=0.689 n=6
Parse Time2.97s (± 1.51%)2.95s (± 1.79%)~2.87s3.01sp=0.419 n=6
Bind Time1.62s (± 1.29%)1.63s (± 0.63%)~1.61s1.64sp=0.516 n=6
Check Time15.47s (± 0.26%)15.48s (± 0.61%)~15.39s15.62sp=0.747 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time20.07s (± 0.39%)20.05s (± 0.59%)~19.94s20.27sp=0.470 n=6
vscode - node (v20.17.0, x64)
Errors11~~~p=1.000 n=6
Symbols3,104,5183,104,518~~~p=1.000 n=6
Types1,070,0451,070,045~~~p=1.000 n=6
Memory used3,196,270k (± 0.00%)3,196,224k (± 0.00%)~3,195,950k3,196,392kp=0.936 n=6
Parse Time13.95s (± 0.45%)13.98s (± 0.86%)~13.90s14.22sp=0.687 n=6
Bind Time4.48s (± 0.59%)4.48s (± 0.33%)~4.46s4.50sp=0.745 n=6
Check Time84.50s (± 4.17%)83.61s (± 4.01%)~80.82s89.60sp=0.575 n=6
Emit Time25.44s (± 9.72%)25.41s (±10.07%)~21.99s27.26sp=1.000 n=6
Total Time128.37s (± 3.41%)127.47s (± 3.98%)~122.05s135.32sp=0.575 n=6
webpack - node (v20.17.0, x64)
Errors00~~~p=1.000 n=6
Symbols279,071279,071~~~p=1.000 n=6
Types113,893113,893~~~p=1.000 n=6
Memory used426,553k (± 0.01%)426,597k (± 0.01%)~426,555k426,661kp=0.093 n=6
Parse Time4.19s (± 0.71%)4.16s (± 0.74%)~4.11s4.19sp=0.120 n=6
Bind Time1.85s (± 0.74%)1.86s (± 2.13%)~1.82s1.92sp=0.870 n=6
Check Time17.07s (± 1.85%)16.93s (± 0.27%)~16.88s17.00sp=0.572 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time23.11s (± 1.34%)22.96s (± 0.11%)~22.91s22.98sp=0.225 n=6
xstate-main - node (v20.17.0, x64)
Errors00~~~p=1.000 n=6
Symbols540,027540,027~~~p=1.000 n=6
Types181,292181,292~~~p=1.000 n=6
Memory used481,653k (± 0.00%)481,737k (± 0.01%)+83k (+ 0.02%)481,703k481,793kp=0.005 n=6
Parse Time3.58s (± 1.14%)3.58s (± 1.02%)~3.53s3.62sp=0.809 n=6
Bind Time1.23s (± 0.80%)1.23s (± 0.42%)~1.23s1.24sp=0.931 n=6
Check Time17.81s (± 0.47%)17.90s (± 1.22%)~17.77s18.34sp=0.688 n=6
Emit Time0.00s (±244.70%)0.00s~~~p=0.405 n=6
Total Time22.61s (± 0.38%)22.72s (± 0.96%)~22.58s23.16sp=0.575 n=6
Compiler-Unions - node (v22.8.0, x64)
Errors3030~~~p=1.000 n=6
Symbols62,34062,340~~~p=1.000 n=6
Types50,37850,378~~~p=1.000 n=6
Memory used194,047k (± 1.00%)195,354k (± 0.99%)~192,863k196,651kp=0.066 n=6
Parse Time1.33s (± 2.67%)1.37s (± 2.21%)~1.33s1.41sp=0.106 n=6
Bind Time0.69s (± 1.18%)0.69s (± 1.42%)~0.68s0.70sp=1.000 n=6
Check Time8.83s (± 0.45%)8.83s (± 0.50%)~8.76s8.89sp=0.810 n=6
Emit Time2.68s (± 4.85%)2.66s (± 4.32%)~2.59s2.89sp=0.936 n=6
Total Time13.55s (± 1.22%)13.55s (± 0.61%)~13.42s13.67sp=1.000 n=6
angular-1 - node (v22.8.0, x64)
Errors77~~~p=1.000 n=6
Symbols947,102947,102~~~p=1.000 n=6
Types410,738410,738~~~p=1.000 n=6
Memory used1,223,721k (± 0.00%)1,223,795k (± 0.00%)+74k (+ 0.01%)1,223,745k1,223,861kp=0.013 n=6
Parse Time6.86s (± 0.58%)6.90s (± 0.46%)~6.85s6.94sp=0.170 n=6
Bind Time2.01s (± 2.20%)1.99s (± 0.26%)~1.99s2.00sp=0.923 n=6
Check Time30.47s (± 0.32%)30.49s (± 0.56%)~30.25s30.78sp=0.809 n=6
Emit Time14.92s (± 0.38%)14.92s (± 0.69%)~14.78s15.01sp=1.000 n=6
Total Time54.26s (± 0.26%)54.30s (± 0.32%)~54.19s54.63sp=0.872 n=6
mui-docs - node (v22.8.0, x64)
Errors00~~~p=1.000 n=6
Symbols2,521,6512,521,651~~~p=1.000 n=6
Types936,037936,037~~~p=1.000 n=6
Memory used2,348,889k (± 0.00%)2,348,971k (± 0.00%)+82k (+ 0.00%)2,348,938k2,349,030kp=0.020 n=6
Parse Time7.83s (± 0.33%)7.82s (± 0.25%)~7.78s7.83sp=0.454 n=6
Bind Time1.88s (± 0.56%)1.87s (± 1.04%)~1.84s1.89sp=1.000 n=6
Check Time65.66s (± 1.40%)66.04s (± 2.54%)~64.42s69.04sp=1.000 n=6
Emit Time0.25s (± 1.62%)0.26s (± 2.01%)~0.25s0.26sp=0.112 n=6
Total Time75.62s (± 1.19%)75.98s (± 2.19%)~74.39s78.97sp=1.000 n=6
self-build-src - node (v22.8.0, x64)
Errors00~~~p=1.000 n=6
Symbols1,250,4741,250,474~~~p=1.000 n=6
Types265,039265,039~~~p=1.000 n=6
Memory used2,393,834k (± 0.01%)2,394,856k (± 0.01%)+1,021k (+ 0.04%)2,394,472k2,395,212kp=0.005 n=6
Parse Time5.01s (± 0.80%)4.96s (± 0.99%)~4.92s5.04sp=0.092 n=6
Bind Time2.03s (± 1.26%)2.00s (± 0.76%)~1.99s2.03sp=0.081 n=6
Check Time31.64s (± 0.11%)31.65s (± 0.21%)~31.55s31.76sp=1.000 n=6
Emit Time2.27s (± 1.82%)2.26s (± 0.18%)~2.26s2.27sp=0.059 n=6
Total Time40.95s (± 0.19%)40.87s (± 0.23%)~40.75s41.03sp=0.230 n=6
self-build-src-public-api - node (v22.8.0, x64)
Errors00~~~p=1.000 n=6
Symbols1,250,4741,250,474~~~p=1.000 n=6
Types265,039265,039~~~p=1.000 n=6
Memory used2,474,236k (± 0.02%)2,474,664k (± 0.01%)~2,474,155k2,475,005kp=0.093 n=6
Parse Time5.23s (± 2.23%)5.23s (± 0.78%)~5.20s5.31sp=0.336 n=6
Bind Time1.79s (± 1.83%)1.80s (± 0.91%)~1.77s1.82sp=0.378 n=6
Check Time32.37s (± 1.37%)32.53s (± 0.49%)~32.37s32.82sp=0.810 n=6
Emit Time2.29s (± 1.12%)2.27s (± 1.09%)~2.23s2.30sp=0.375 n=6
Total Time41.69s (± 0.80%)41.81s (± 0.40%)~41.64s42.11sp=0.936 n=6
self-compiler - node (v22.8.0, x64)
Errors00~~~p=1.000 n=6
Symbols260,972260,972~~~p=1.000 n=6
Types106,405106,405~~~p=1.000 n=6
Memory used436,619k (± 0.02%)436,609k (± 0.01%)~436,583k436,642kp=0.470 n=6
Parse Time2.89s (± 3.00%)2.85s (± 0.91%)~2.81s2.88sp=0.747 n=6
Bind Time1.22s (± 8.22%)1.29s (± 1.79%)~1.25s1.32sp=0.333 n=6
Check Time14.86s (± 0.22%)14.86s (± 0.45%)~14.75s14.92sp=0.809 n=6
Emit Time1.15s (± 0.86%)1.16s (± 0.45%)~1.15s1.16sp=0.140 n=6
Total Time20.12s (± 0.13%)20.15s (± 0.49%)~20.02s20.26sp=0.872 n=6
ts-pre-modules - node (v22.8.0, x64)
Errors6868~~~p=1.000 n=6
Symbols225,916225,916~~~p=1.000 n=6
Types94,41494,414~~~p=1.000 n=6
Memory used371,279k (± 0.01%)371,320k (± 0.01%)~371,288k371,349kp=0.093 n=6
Parse Time2.44s (± 0.87%)2.45s (± 1.40%)~2.42s2.51sp=0.685 n=6
Bind Time1.36s (± 0.30%)1.36s (± 1.57%)~1.34s1.40sp=0.257 n=6
Check Time12.72s (± 0.32%)12.65s (± 0.36%)~12.60s12.71sp=0.065 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time16.51s (± 0.17%)16.46s (± 0.13%)-0.05s (- 0.30%)16.44s16.50sp=0.010 n=6
vscode - node (v22.8.0, x64)
Errors11~~~p=1.000 n=6
Symbols3,104,5183,104,518~~~p=1.000 n=6
Types1,070,0451,070,045~~~p=1.000 n=6
Memory used3,197,361k (± 0.00%)3,197,439k (± 0.00%)~3,197,250k3,197,573kp=0.173 n=6
Parse Time12.11s (± 0.25%)12.16s (± 1.11%)~11.99s12.36sp=0.809 n=6
Bind Time4.25s (±17.23%)4.30s (±17.51%)~3.93s5.82sp=0.935 n=6
Check Time74.06s (± 4.46%)74.61s (± 3.33%)~72.28s78.75sp=0.471 n=6
Emit Time24.81s (± 7.10%)24.16s (± 9.35%)~21.19s25.84sp=1.000 n=6
Total Time115.23s (± 1.42%)115.22s (± 3.11%)~110.41s120.51sp=0.810 n=6
webpack - node (v22.8.0, x64)
Errors00~~~p=1.000 n=6
Symbols279,071279,071~~~p=1.000 n=6
Types113,893113,893~~~p=1.000 n=6
Memory used428,761k (± 0.03%)428,768k (± 0.03%)~428,578k428,908kp=0.810 n=6
Parse Time3.30s (± 0.97%)3.32s (± 1.42%)~3.25s3.37sp=0.629 n=6
Bind Time1.36s (± 0.62%)1.36s (± 1.36%)~1.34s1.39sp=0.548 n=6
Check Time12.94s (± 0.29%)12.91s (± 0.31%)~12.86s12.98sp=0.226 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time17.60s (± 0.28%)17.59s (± 0.26%)~17.53s17.66sp=0.809 n=6
xstate-main - node (v22.8.0, x64)
Errors00~~~p=1.000 n=6
Symbols540,027540,027~~~p=1.000 n=6
Types181,292181,292~~~p=1.000 n=6
Memory used484,128k (± 0.01%)484,201k (± 0.01%)+73k (+ 0.02%)484,172k484,245kp=0.005 n=6
Parse Time2.77s (± 1.04%)2.78s (± 1.34%)~2.72s2.83sp=0.629 n=6
Bind Time0.92s (± 1.49%)0.92s (± 2.02%)~0.90s0.95sp=1.000 n=6
Check Time14.63s (± 0.49%)14.61s (± 0.28%)~14.54s14.64sp=0.808 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time18.32s (± 0.45%)18.31s (± 0.19%)~18.26s18.36sp=0.574 n=6
System info unknown
Hosts
  • node (v20.17.0, x64)
  • node (v22.8.0, x64)
Scenarios
  • Compiler-Unions - node (v20.17.0, x64)
  • angular-1 - node (v20.17.0, x64)
  • mui-docs - node (v20.17.0, x64)
  • self-build-src - node (v20.17.0, x64)
  • self-build-src-public-api - node (v20.17.0, x64)
  • self-compiler - node (v20.17.0, x64)
  • ts-pre-modules - node (v20.17.0, x64)
  • vscode - node (v20.17.0, x64)
  • webpack - node (v20.17.0, x64)
  • xstate-main - node (v20.17.0, x64)
  • Compiler-Unions - node (v22.8.0, x64)
  • angular-1 - node (v22.8.0, x64)
  • mui-docs - node (v22.8.0, x64)
  • self-build-src - node (v22.8.0, x64)
  • self-build-src-public-api - node (v22.8.0, x64)
  • self-compiler - node (v22.8.0, x64)
  • ts-pre-modules - node (v22.8.0, x64)
  • vscode - node (v22.8.0, x64)
  • webpack - node (v22.8.0, x64)
  • xstate-main - node (v22.8.0, x64)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

Developer Information:

Download Benchmarks

@jakebaileyjakebailey merged commit5119230 intomicrosoft:mainSep 26, 2024
@jakebaileyjakebailey deleted the v8-compile-cache branchSeptember 26, 2024 21:53
Copy link

@anishkumar127anishkumar127 left a comment

Choose a reason for hiding this comment

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

nice

mjbvz added a commit to mjbvz/vscode that referenced this pull requestSep 27, 2024
@microsoftmicrosoft locked asresolvedand limited conversation to collaboratorsOct 16, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.

Reviewers

@sandersnsandersnsandersn approved these changes

@zkatzkatAwaiting requested review from zkat

@DanielRosenwasserDanielRosenwasserAwaiting requested review from DanielRosenwasser

@rbucktonrbucktonAwaiting requested review from rbuckton

@RyanCavanaughRyanCavanaughAwaiting requested review from RyanCavanaugh

@mjbvzmjbvzAwaiting requested review from mjbvz

+1 more reviewer

@anishkumar127anishkumar127anishkumar127 left review comments

Reviewers whose approvals may not affect merge requirements

Assignees

@jakebaileyjakebailey

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.

5 participants

@jakebailey@typescript-bot@sandersn@anishkumar127@DanielRosenwasser

[8]ページ先頭

©2009-2025 Movatter.jp