Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigating Electron 8 exploration startup performance #97638

Closed
deepak1556 opened this issue May 12, 2020 · 27 comments
Closed

Investigating Electron 8 exploration startup performance #97638

deepak1556 opened this issue May 12, 2020 · 27 comments
Assignees
Labels
engineering VS Code - Build / issue tracking / etc. perf-startup
Milestone

Comments

@deepak1556
Copy link
Collaborator

  • OS Version: Windows 10 Enterprise 18363.836

Following results are from running https://github.com/microsoft/vscode-build-tools/blob/master/perf/perf-canary.ps1 unmodified

Summary: BEST 842ms, VERSION 288852d8c26d797974bfb8aed06e1bff9b809223, APP Code - Insiders.exe

FAST 898        Code - Insiders 288852d8c2      08598929-4c67-4826-b604-367f04412da41589311941274       NO_standard_start
FAST 906        Code - Insiders 288852d8c2      eecfa25d-69e3-42d5-b9be-4b27e4d925f91589311972339       NO_standard_start
FAST 866        Code - Insiders 288852d8c2      fb47b877-ae39-4a69-af70-59fb5ab9380a1589312004407       NO_standard_start
FAST 872        Code - Insiders 288852d8c2      5890cbb8-c896-4be2-9e24-3ee0dfbd7ebc1589312030499       NO_standard_start
FAST 874        Code - Insiders 288852d8c2      1467177a-09d1-4247-8410-3a8c51335c5a1589312077577       NO_standard_start
FAST 842        Code - Insiders 288852d8c2      4cd74f86-96d6-4168-8b49-eb162c2f896a1589312108611       NO_standard_start
SLOW 2360       Code - Insiders 288852d8c2      8a233734-dfff-4297-b8d3-dfd57c3dadc91589312160191       NO_standard_start
FAST 878        Code - Insiders 288852d8c2      505f3941-1559-4e6d-bd97-0925d36ef8841589312205875       NO_standard_start
FAST 870        Code - Insiders 288852d8c2      70fa8c57-afdc-4902-bcba-df23436254cb1589312237931       NO_standard_start```
-Good True

Summary: BEST 875ms, VERSION 6c8ce010748453b34189d61a636c57e79f2f53a8, APP Code - Exploration.exe

FAST 960        Code - Exploration      6c8ce01074      3a07c6a6-72ad-4580-9a31-b9830c3dc1da1589312560116       NO_standard_start
FAST 897        Code - Exploration      6c8ce01074      d1183d6e-9ae1-4b49-bee8-289a82937ded1589312607054       NO_standard_start
FAST 983        Code - Exploration      6c8ce01074      115e57b5-8008-43b5-a837-0438ecca50e31589312649258       NO_standard_start
FAST 875        Code - Exploration      6c8ce01074      7499276d-6b43-4b80-87c5-4363ac278fba1589312679189       NO_standard_start
FAST 916        Code - Exploration      6c8ce01074      40f014bf-c55b-4e98-a36a-cab890d1148b1589312711333       NO_standard_start
FAST 951        Code - Exploration      6c8ce01074      6529dfb9-8f00-4cae-97bc-11d1b05a79a91589312749401       NO_standard_start
FAST 956        Code - Exploration      6c8ce01074      68f3de57-1a06-47bb-b777-10b8d9fc54e01589312782456       NO_standard_start
FAST 900        Code - Exploration      6c8ce01074      0f8b85b2-d441-4fd4-bb4c-4cf67de134f21589312814517       NO_standard_start
FAST 939        Code - Exploration      6c8ce01074      0ef00403-28b9-4626-9b51-281ea499053d1589312859560       NO_standard_start```
-Good True
@deepak1556 deepak1556 added this to the May 2020 milestone May 12, 2020
@deepak1556 deepak1556 added engineering VS Code - Build / issue tracking / etc. perf-startup labels May 12, 2020
@deepak1556
Copy link
Collaborator Author

  • OS Version: MacOS 10.15.4

Summary: BEST 1239ms, VERSION 288852d8c26d797974bfb8aed06e1bff9b809223, APP Visual Studio Code - Insiders.app 🍎

SLOW 3099	Code - Insiders	288852d8c2	0ce791da-3b50-459f-bada-6bbe92d658b31589318250428	NO_standard_start 
FAST 1327	Code - Insiders	288852d8c2	631d4c2f-bb93-49ee-b784-554732e574c91589318286801	NO_standard_start 
FAST 1295	Code - Insiders	288852d8c2	a469c0d0-81b5-434c-bc0f-c13140e4fd4a1589318320094	NO_standard_start 
FAST 1318	Code - Insiders	288852d8c2	9df38a32-2ac9-4a9f-9a80-e5033428bca91589318361383	NO_standard_start 
FAST 1251	Code - Insiders	288852d8c2	5ad9e02b-8c73-4c91-b403-48d7b481497c1589318409631	NO_standard_start 
FAST 1300	Code - Insiders	288852d8c2	5c1b122e-f813-4f68-98f2-40049fff002c1589318457871	NO_standard_start 
FAST 1281	Code - Insiders	288852d8c2	9f14e69d-3bce-4303-a424-7c83a3e4ae391589318491137	NO_standard_start 
FAST 1299	Code - Insiders	288852d8c2	144bf1fa-5eb9-4449-9840-7848659e6bb81589318539406	NO_standard_start 
FAST 1267	Code - Insiders	288852d8c2	ee959a16-0fc7-4dbc-a4a4-ae12da6bb09b1589318580672	NO_standard_start 
FAST 1239	Code - Insiders	288852d8c2	f012cb4d-f62c-4763-9fa6-402757979a6d1589318614908	NO_standard_start 

-Good True

Summary: BEST 1247ms, VERSION 6c8ce010748453b34189d61a636c57e79f2f53a8, APP Visual Studio Code - Exploration.app 🍎

FAST 1628	Code - Exploration	6c8ce01074	8a35d3e3-c58a-425a-b77e-4629a913ee5d1589318670326	NO_standard_start 
FAST 1299	Code - Exploration	6c8ce01074	38c5137f-e0ac-4811-991f-35b451f069051589318704659	NO_standard_start 
FAST 1301	Code - Exploration	6c8ce01074	bd61858a-553f-42c1-9370-94432ad464fc1589318747939	NO_standard_start 
FAST 1282	Code - Exploration	6c8ce01074	173ac02f-33c6-4fdb-b037-f64dbc72ff951589318788241	NO_standard_start 
FAST 1273	Code - Exploration	6c8ce01074	8ad02fa1-8b8b-48b2-8d3a-407d9c22db791589318836608	NO_standard_start 
FAST 1284	Code - Exploration	6c8ce01074	caa387b8-d8f5-48c4-a7c8-058a982de7e91589318881880	NO_standard_start 
FAST 1247	Code - Exploration	6c8ce01074	ebea5eb3-afac-4e94-bb71-dcc5e9434e731589318911118	NO_standard_start 
FAST 1276	Code - Exploration	6c8ce01074	51aa80ac-d43a-40cf-aead-9f4b354425221589318935426	NO_standard_start 
FAST 1316	Code - Exploration	6c8ce01074	e8db31a5-9db6-4905-a408-d2337d462f951589318966764	NO_standard_start 
FAST 1277	Code - Exploration	6c8ce01074	de54699e-6826-4381-9946-6d2b3cc409791589319003062	NO_standard_start 

-Good True

@deepak1556
Copy link
Collaborator Author

deepak1556 commented May 12, 2020

Couple of things to confirm,

Atleast from my numbers exploration seems faster than insiders

@bpasero
Copy link
Member

bpasero commented May 13, 2020

@deepak1556 the --skip-getting-started flag was not for welcome. We used to open our homepage on every first startup but since dropped it.

@deepak1556
Copy link
Collaborator Author

Ah ok, thanks for clarifying!

@jrieken
Copy link
Member

jrieken commented May 13, 2020

All my tests show up as NO_standard_start but I see we have couple of conditions to determine it

The "standard start" is defined as a workbench state that shows the explorer viewlet and a single file - the perf machines use the vscode-folder and open the package.json-file.

Setting up this state is a manual process but maybe with @eamodio's state for codespaces this can now be automated?

@bpasero
Copy link
Member

bpasero commented May 13, 2020

Since we show the explorer by default, I would think that running code <path to vscode folder> <path to package.json> is all you need to get there.

@jrieken
Copy link
Member

jrieken commented May 13, 2020

I would think that running code is all you need to get there.

Need to give that a try again.

On the actual numbers @bpasero Didn't you also measure electron 8 performance? Can you share your numbers here?

@deepak1556
Copy link
Collaborator Author

Since we show the explorer by default, I would think that running code is all you need to get there.

This works! I am changing the perf script args to get new numbers now.

@jrieken
Copy link
Member

jrieken commented May 13, 2020

Actually, this can be reproduce way simpler, use bare electron fiddle. Use the snippet below (fib(42)) as renderer-source and do the following

  • Run
  • Open Dev Tool > Console
  • Take note of the "DURATION XYZms"

I am seeing the following numbers

7.2.4 8.2.5
2611 2844
2612 2841
2615 2870
2608 2846

I conclude the version 8.2.5 is roughly 10% slower which somewhat correlates with the numbers the mac perf bot is showing

// This file is required by the index.html file and will
// be executed in the renderer process for that window.
// All of the Node.js APIs are available in this process.
function fib(n) {
  if(n === 0) {
    return 0;
  } else if(n === 1) {
    return 1;
  } else {
    return fib(n-1) + fib(n-2);
  }
}

const t1 = Date.now();
console.log(fib(42));

console.log(`DURATION ${Date.now()-t1}ms`)

@bpasero
Copy link
Member

bpasero commented May 13, 2020

I ran tests on macOS, here are my findings:

Stable Cold

| What                                                            | Duration | Process          | Info                                                      |
| --------------------------------------------------------------- | -------- | ---------------- | --------------------------------------------------------- |
| start => app.isReady                                            | 99       | [main]           | initial startup: true                                     |
| nls:start => nls:end                                            | 0        | [main]           | initial startup: true                                     |
| require(main.bundle.js)                                         | 76       | [main]           | initial startup: true                                     |
| app.isReady => window.loadUrl()                                 | 322      | [main]           | initial startup: true                                     |
| window.loadUrl() => begin to require(workbench.desktop.main.js) | 260      | [main->renderer] | NewWindow                                                 |
| require(workbench.desktop.main.js)                              | 416      | [renderer]       | cached data: YES, node_modules took 93ms                  |
| require & init workspace storage                                | 12       | [renderer]       | -                                                         |
| init workspace service                                          | 14       | [renderer]       | -                                                         |
| register extensions & spawn extension host                      | 682      | [renderer]       | -                                                         |
| restore viewlet                                                 | 16       | [renderer]       | workbench.view.explorer                                   |
| restore panel                                                   | 0        | [renderer]       | -                                                         |
| restore editors                                                 | 955      | [renderer]       | 2: workbench.editors.files.fileEditorInput, PerfviewInput |
| overall workbench load                                          | 1073     | [renderer]       | -                                                         |
| workbench ready                                                 | 2547     | [main->renderer] | -                                                         |
| extensions registered                                           | 2526     | [renderer]       | -                                                         |

Stable Warm

| What                                                            | Duration | Process          | Info                                                      |
| --------------------------------------------------------------- | -------- | ---------------- | --------------------------------------------------------- |
| start => app.isReady                                            | 44       | [main]           | initial startup: true                                     |
| nls:start => nls:end                                            | 0        | [main]           | initial startup: true                                     |
| require(main.bundle.js)                                         | 42       | [main]           | initial startup: true                                     |
| app.isReady => window.loadUrl()                                 | 139      | [main]           | initial startup: true                                     |
| window.loadUrl() => begin to require(workbench.desktop.main.js) | 189      | [main->renderer] | NewWindow                                                 |
| require(workbench.desktop.main.js)                              | 272      | [renderer]       | cached data: YES, node_modules took 32ms                  |
| require & init workspace storage                                | 11       | [renderer]       | -                                                         |
| init workspace service                                          | 12       | [renderer]       | -                                                         |
| register extensions & spawn extension host                      | 168      | [renderer]       | -                                                         |
| restore viewlet                                                 | 11       | [renderer]       | workbench.view.explorer                                   |
| restore panel                                                   | 0        | [renderer]       | -                                                         |
| restore editors                                                 | 274      | [renderer]       | 2: workbench.editors.files.fileEditorInput, PerfviewInput |
| overall workbench load                                          | 374      | [renderer]       | -                                                         |
| workbench ready                                                 | 1373     | [main->renderer] | -                                                         |
| extensions registered                                           | 1455     | [renderer]       | -                                                         |

Exploration Cold

| What                                                            | Duration | Process          | Info                                                      |
| --------------------------------------------------------------- | -------- | ---------------- | --------------------------------------------------------- |
| start => app.isReady                                            | 58       | [main]           | initial startup: true                                     |
| nls:start => nls:end                                            | 0        | [main]           | initial startup: true                                     |
| require(main.bundle.js)                                         | 67       | [main]           | initial startup: true                                     |
| app.isReady => window.loadUrl()                                 | 201      | [main]           | initial startup: true                                     |
| window.loadUrl() => begin to require(workbench.desktop.main.js) | 229      | [main->renderer] | NewWindow                                                 |
| require(workbench.desktop.main.js)                              | 305      | [renderer]       | cached data: YES, node_modules took 63ms                  |
| require & init workspace storage                                | 7        | [renderer]       | -                                                         |
| init workspace service                                          | 15       | [renderer]       | -                                                         |
| register extensions & spawn extension host                      | 162      | [renderer]       | -                                                         |
| restore viewlet                                                 | 13       | [renderer]       | workbench.view.explorer                                   |
| restore panel                                                   | 0        | [renderer]       | -                                                         |
| restore editors                                                 | 395      | [renderer]       | 2: workbench.editors.files.fileEditorInput, PerfviewInput |
| overall workbench load                                          | 510      | [renderer]       | -                                                         |
| workbench ready                                                 | 1673     | [main->renderer] | -                                                         |
| extensions registered                                           | 1668     | [renderer]       | -                                                         |

Exploration Warm

| What                                                            | Duration | Process          | Info                                                      |
| --------------------------------------------------------------- | -------- | ---------------- | --------------------------------------------------------- |
| start => app.isReady                                            | 44       | [main]           | initial startup: true                                     |
| nls:start => nls:end                                            | 0        | [main]           | initial startup: true                                     |
| require(main.bundle.js)                                         | 45       | [main]           | initial startup: true                                     |
| app.isReady => window.loadUrl()                                 | 166      | [main]           | initial startup: true                                     |
| window.loadUrl() => begin to require(workbench.desktop.main.js) | 185      | [main->renderer] | NewWindow                                                 |
| require(workbench.desktop.main.js)                              | 251      | [renderer]       | cached data: YES, node_modules took 35ms                  |
| require & init workspace storage                                | 13       | [renderer]       | -                                                         |
| init workspace service                                          | 15       | [renderer]       | -                                                         |
| register extensions & spawn extension host                      | 151      | [renderer]       | -                                                         |
| restore viewlet                                                 | 11       | [renderer]       | workbench.view.explorer                                   |
| restore panel                                                   | 0        | [renderer]       | -                                                         |
| restore editors                                                 | 366      | [renderer]       | 2: workbench.editors.files.fileEditorInput, PerfviewInput |
| overall workbench load                                          | 491      | [renderer]       | -                                                         |
| workbench ready                                                 | 1573     | [main->renderer] | -                                                         |
| extensions registered                                           | 1570     | [renderer]       | -                                                         |

@bpasero
Copy link
Member

bpasero commented May 13, 2020

I ran similar tests on Windows but cannot find the reports I did anymore. I think I was seeing similar numbers, slightly slower between the runs but for sure not as bad as the perf machine shows. But then again, this is also a very fast machine.

@bpasero
Copy link
Member

bpasero commented May 13, 2020

Related blog entries for V8 changes:

I wonder if the pointer compression would have any impact.

@deepak1556
Copy link
Collaborator Author

deepak1556 commented May 13, 2020

New perf script numbers based on Standard_start

macOS

Insiders - BEST `1610ms`
Exploration - BEST `1787ms`

Electron Fiddle Fibonnaci test - 8.2.5 is 200-300ms slower than 7.2.4

windows

Insiders - BEST `1117ms`
Exploration - BEST `1198ms`

Electron Fiddle Fibonnaci test - They have similar times

Now the number is consistent on macOS with your observations :)

I wonder if the pointer compression would have any impact.

Good question! but electron disabled pointer compression until v9 due to compatibility issue from node.js electron/electron#21468

@deepak1556
Copy link
Collaborator Author

I will skip windows side for now, since I can't repro the issue there. Will continue investigation on macOS tomorrow. One thing to note for the fiddle test, if you replace nodeIntegration: true with sandbox: true , the numbers turn out to be similar which hints at node integration initialization path.

@deepak1556
Copy link
Collaborator Author

using the test sample from @jrieken in a base electron app, start with

./electron-v8.2.5-darwin-x64/Electron.app/Contents/MacOS/Electron ./electron-quick-start/ --enable-logging --trace-startup --trace-startup-duration=7

This will generate chrometrace.log in the current directory, load that in the chrome browser with chrome://tracing . Do the same for v7.2.4

Interesting trace slices

  • v8::run that evaluates the inline script after parsing the html

    7.2.4 8.2.5
    start 602.946ms 605.540ms
    end 2,894.802ms 3,144.133ms

Screen Shot 2020-05-13 at 6 30 00 PM

  • when sandbox: true, the v8::run only starts 20-30ms before, than with nodeIntegration:true. This can be attributed to initialization of nodejs in the renderer, particularly check the slices contextCreatedNotification .

sandbox

Screen Shot 2020-05-13 at 6 41 54 PM

nodeIntegration

Screen Shot 2020-05-13 at 6 42 18 PM

So the node context initialization path is negligible, we can ignore it. The bulk of delay stems from the v8 execution which matches the number we see on the devtools console and not from any renderer startup stuff in electron.

start with --trace-startup=v8 instead of --trace-startup to get only v8 related slices and will confirm this. Ideally the next step is to use the --trace-config-file option with following config but for some reason its not working.

{
  "startup_duration": 7,
  "result_directory": "/Users/demohan/github",
  "trace_config": {
    "included_categories": [
        "disabled-by-default-v8.cpu_profiler",
        "disabled-by-default-v8.gc"
    ],
    "excluded_categories": ["*"],
  }
}

@deepak1556
Copy link
Collaborator Author

Tried to visualize v8 stuff from Node.js profiler, again the v8 impact is seen here and matches the above observation.

> NODE_ENV=production ELECTRON_RUN_AS_NODE=1 ~/Downloads/electron-v7.2.4-darwin-x64/Electron.app/Contents/MacOS/Electron --prof fibinacci.js

> ELECTRON_RUN_AS_NODE=1 ~/Downloads/electron-v7.2.4-darwin-x64/Electron.app/Contents/MacOS/Electron --prof-process isolate-0x7ff6b0008000-1036-v8.log

8.2.5

[Summary]:

ticks total nonlib name
2432 91.6% 91.8% JavaScript
60 2.3% 2.3% C++
2 0.1% 0.1% GC
7 0.3% Shared libraries
157 5.9% Unaccounted

[JavaScript]:

ticks total nonlib name
2432 91.6% 91.8% LazyCompile: *fib /Users/demohan/github/electron-quick-start/fibonacci.js:4:17

7.2.4

[Summary]:

ticks total nonlib name
2172 89.4% 89.6% JavaScript
60 2.5% 2.5% C++
3 0.1% 0.1% GC
5 0.2% Shared libraries
193 7.9% Unaccounted

[JavaScript]:

ticks total nonlib name
2172 89.4% 89.6% LazyCompile: *fib /Users/demohan/github/electron-quick-start/fibonacci.js:4:17

@deepak1556
Copy link
Collaborator Author

Working on getting a flamegraph for the v8 execution path.

@deepak1556
Copy link
Collaborator Author

Built d8 (simple commandline for v8) of Electron 8.2.5 and ran with https://github.com/thlorenz/cpuprofilify/blob/master/bin/profile_1ms.d

sudo profile_1ms.d -c '/Users/demohan/github/electron-gn/src/out/Release/d8 --interpreted-frames-native-stack --perf-basic-prof-only-functions /Users/demohan/github/electron-quick-start/fibinacci.js' > dtrace_3.txt

dtrace_3.txt

cpuprofile and perf map

dtrace-cpuprofile.zip

The stack is incomplete on macOS, will have to try on linux with perf tool which is known to work well.

@bpasero
Copy link
Member

bpasero commented May 14, 2020

Perf numbers on Windows for me:

Electron 7 Insiders

COLD
workbench ready: 1792

WARM
workbench ready: 1418 | 1261 | 1382

RELOAD
workbench ready: 1105

Electron 8 Exploration

COLD
workbench ready: 2643

WARM
workbench ready: 1426 | 1248 | 1270

RELOAD
workbench ready: 976

It seems to me that cold startup is indeed slower, but otherwise I was not able to measure any difference. This is with vscode workspace open, 1 editor package.json and a second the startup perf numbers. No extensions and fresh data dir, all after a OS restart.

@jrieken
Copy link
Member

jrieken commented May 14, 2020

idk what's up with the perf machine. @alexdima brought up the idea that it might be a new set of CPU instructions used by electron 8 that can only be emulated on the perf machine - it is a very old machine (7+ years)...

@eamodio
Copy link
Contributor

eamodio commented May 25, 2020

I'm seeing VERY long opening times on my Windows 10 (2004 - slow ring, 19041.264) desktop machine (12-core 3.8GHz AMD proc) with the latest insiders too.

@deepak1556
Copy link
Collaborator Author

deepak1556 commented Jun 13, 2020

Went back to the drawing board, redid the measurements for windows.

  • First a standard chrome trace, ./scripts/code.bat --trace-startup --trace-startup-duration=15

Screenshot (3)

As seen above, the main process is pretty much blocked by something on the UI thread, so rules out any impact from chromium, rather something from app javascript is responsible.

  • Javascript profiling on the main process ./scripts/code.bat --inspect-brk, connect to the debugger from chrome://inspect and take a cpu profile.

CPU-E8.zip

CPU-E7.zip

Turns out all the IO calls in the app are comparatively slower to the measurements from Electron 7

After that it was just a matter of bisect to find the offending commit and electron/electron#20303 seems to be the root cause. Double verified by applying this patch to Electron 7 and the cpu profile numbers now match Electron 8.

Next step would be to create a minimal repro.

@bpasero
Copy link
Member

bpasero commented Jun 24, 2020

Results from running perf tests on Windows 10 VM (macOS, Parallels), comparing current insiders to stable:

Insiders
Summary: BEST `1092ms`, VERSION `0913b1aa43191d8af0ccb4a133d9a8d7c1a81d69`, APP `Code - Insiders.exe` :windows: :vscode-insiders:

SLOW 2229       Code - Insiders 0913b1aa43      7f1cf020-d1d6-486f-80c0-49619d61de4a1592979693984       NO_standard_start : Either cache data is rejected or not created
FAST 1484       Code - Insiders 0913b1aa43      0e8fd1fe-3974-4f81-a185-a69dd18e2ed51592979732317       standard_start
FAST 1316       Code - Insiders 0913b1aa43      01aa96c8-a9b7-4873-a615-41a21474b2101592979779979       standard_start
FAST 1227       Code - Insiders 0913b1aa43      3fd9c192-2a4c-4480-b751-e98a4747dcdf1592979808779       standard_start
FAST 1330       Code - Insiders 0913b1aa43      fd26ffad-37ad-4bc8-962f-775ab375f37f1592979849111       standard_start
FAST 1163       Code - Insiders 0913b1aa43      70ef20fb-3394-4b52-8d8e-66c21eaa687e1592979878218       standard_start
FAST 1388       Code - Insiders 0913b1aa43      813380b5-2c9e-413e-8467-ae63cacb2ebc1592979911791       standard_start
FAST 1238       Code - Insiders 0913b1aa43      a5564a5f-0b8e-4297-a932-7b29d24774291592979951706       standard_start
FAST 1092       Code - Insiders 0913b1aa43      c0af511f-691c-4c96-9e28-f5b5f99286bc1592979995783       standard_start
FAST 1292       Code - Insiders 0913b1aa43      d1c4b129-40cc-459e-be44-3d3bda77242a1592980035012       standard_start
= 1281 avg
Stable
Summary: BEST `956ms`, VERSION `cd9ea6488829f560dc949a8b2fb789f3cdc05f5d`, APP `Code.exe` :windows: :vscode-insiders:

SLOW 2639       Code    cd9ea64888      77fdcc6c-8191-4b41-990b-1ffe2f779dca1592980382233       NO_standard_start : Either cache data is rejected or not created
FAST 1269       Code    cd9ea64888      95ed5d89-ddfe-4647-8a5a-5ee078d040d11592980412473       standard_start
FAST 1231       Code    cd9ea64888      b19cd5a4-4782-4382-8df4-399bf1428b7e1592980458541       standard_start
FAST 1117       Code    cd9ea64888      4b9be5d5-0e02-4dae-8213-2d96dd798c4f1592980485699       standard_start
FAST 1281       Code    cd9ea64888      2e442d4e-8b49-4a07-a42a-4e6ba5fdd97b1592980511246       standard_start
FAST 1181       Code    cd9ea64888      9afead65-964b-4177-a7fe-2245fbbb1fac1592980546135       standard_start
FAST 956        Code    cd9ea64888      c30c13df-d2ad-4445-bda2-f1903173953d1592980592499       standard_start
FAST 1217       Code    cd9ea64888      bfe49c3c-45fa-45a5-8e38-1aae1e691bb81592980617740       standard_start
FAST 1385       Code    cd9ea64888      c7f5c65d-1ef8-4223-8fc8-156de109e5da1592980654392       standard_start
FAST 1316       Code    cd9ea64888      429a68e1-1704-4caa-8aec-ce482cab520a1592980683564       standard_start
= 1217 avg

@bpasero
Copy link
Member

bpasero commented Jun 25, 2020

Results from running perf tests on my office laptop (Windows 10, Parallels) including Electron 9 numbers:

Insiders (Electron 8)
Summary: BEST `1160ms`, VERSION `0913b1aa43191d8af0ccb4a133d9a8d7c1a81d69`, APP `Code - Insiders.exe` :windows: :vscode-insiders:

FAST 1953       Code - Insiders 0913b1aa43      1593a55f-e711-40bf-a2c1-27fa1f1a2d831593076614528       NO_standard_start : Either cache data is rejected or not created
FAST 1262       Code - Insiders 0913b1aa43      0a213ba4-4119-47bb-b57d-a266f240f40b1593076656282       standard_start
FAST 1210       Code - Insiders 0913b1aa43      8db8e300-65db-46ab-85d1-d391d4befea41593076700380       standard_start
FAST 1267       Code - Insiders 0913b1aa43      e53f4f2f-6f1d-4c3c-a10f-b08256d91bb81593076733662       standard_start
FAST 1197       Code - Insiders 0913b1aa43      04c94858-ef22-4dd1-9a14-9033ecf893de1593076773908       standard_start
FAST 1160       Code - Insiders 0913b1aa43      b4ae257e-4a29-40e1-932e-bb0f09ff3f501593076799101       standard_start
FAST 1265       Code - Insiders 0913b1aa43      7d66b4dd-2028-480f-a734-d291514ac40c1593076842305       standard_start
FAST 1321       Code - Insiders 0913b1aa43      6af6e503-013f-496c-8054-6149ed0166661593076878608       standard_start
FAST 1246       Code - Insiders 0913b1aa43      cb47d36d-04b8-4dad-a3b1-6a387965bc6a1593076924895       standard_start
FAST 1167       Code - Insiders 0913b1aa43      ad86e36b-7b1a-4336-b043-c419deb441dd1593076958074       standard_start
avg: 1232

Stable (Electron 7)
Summary: BEST `1062ms`, VERSION `cd9ea6488829f560dc949a8b2fb789f3cdc05f5d`, APP `Code.exe` :windows: :vscode-pride:

SLOW 2610       Code    cd9ea64888      0bc72819-194b-46ca-b484-ab9ec8540c481593077558132       NO_standard_start : Either cache data is rejected or not created
FAST 1163       Code    cd9ea64888      0b49f468-8204-4d87-a4e8-49c292b6b0031593077594350       standard_start
FAST 1188       Code    cd9ea64888      e33d52c2-656a-445e-848b-857517347fe01593077642558       standard_start
FAST 1120       Code    cd9ea64888      48ca2a78-6816-4cb3-8787-4c76ef728f3a1593077685815       standard_start
FAST 1146       Code    cd9ea64888      4020cad2-a6e0-42d9-93ea-5df461a618d31593077724029       standard_start
FAST 1134       Code    cd9ea64888      3fa02cb4-3898-48f2-97dc-bed4c91e09bb1593077762286       standard_start
FAST 1062       Code    cd9ea64888      25a04066-2ccd-4d32-93b8-123b2e94d6821593077803410       standard_start
FAST 1328       Code    cd9ea64888      dbf45334-01d7-4f0e-b012-e941a80cd5a21593077833671       standard_start
FAST 1135       Code    cd9ea64888      b071f190-c2a2-4e3f-9e41-5e855a3a14e21593077877890       standard_start
FAST 1087       Code    cd9ea64888      6863c008-2469-4325-8d11-106489f7a33d1593077924064       standard_start
avg: 1151

Exploration (Electron 9)
Summary: BEST `1136ms`, VERSION `11a6eed191de586f764270db328f9b57ef34c1de`, APP `Code - Exploration.exe` :windows: :vscode-pride:

SLOW 2070       Code - Exploration      11a6eed191      fc475ca7-3d0b-4b65-998d-ad4509176b561593078319768       NO_standard_start : Either cache data is rejected or not created
FAST 1211       Code - Exploration      11a6eed191      4ffe37ca-6178-45a2-8105-399f9dbf1d921593078360200       standard_start
FAST 1467       Code - Exploration      11a6eed191      be4686ad-7f20-405b-91c4-1828672d47851593078391626       standard_start
FAST 1216       Code - Exploration      11a6eed191      b25f675c-b7d4-4447-8c78-2238c38106de1593078426592       standard_start
FAST 1172       Code - Exploration      11a6eed191      0da47af1-e413-472a-ba10-b1fbe41907651593078456734       standard_start
FAST 1142       Code - Exploration      11a6eed191      edd290fd-7b6a-44f2-9cc4-372cccad480b1593078488869       standard_start
FAST 1136       Code - Exploration      11a6eed191      56b78e9f-4d84-48b6-844c-242f1f6681691593078527140       standard_start
FAST 1222       Code - Exploration      11a6eed191      f839d202-897d-4236-b0cf-020683a0a8e31593078569424       standard_start
FAST 1257       Code - Exploration      11a6eed191      80b67614-68fa-4a6e-b095-222ff553aa5f1593078597736       standard_start
FAST 1199       Code - Exploration      11a6eed191      0fff64b5-d2f7-43b4-b521-6623a9d0866d1593078647903       standard_start
avg: 1224

@jrieken
Copy link
Member

jrieken commented Jun 25, 2020

@deepak1556 Is there anything I can record on the perf machine for you to gain more insight. The usual things, like perf-marks, are in telemetry but are there chrome/electron perf recorders that I should run?

While the general trend is maybe positive there is a class of (old?) machines where performance is horrible. It would be awesome if we can figure what those characteristics are so that we can guestimate how many stable users will be affected.

@bpasero
Copy link
Member

bpasero commented Jun 25, 2020

Results from my Windows Desktop:

Insider
Summary: BEST `1286ms`, VERSION `0913b1aa43191d8af0ccb4a133d9a8d7c1a81d69`, APP `Code - Insiders.exe` :windows: :vscode-insiders:

SLOW 3332       Code - Insiders 0913b1aa43      5a0c7ac8-041e-47d6-ba9a-1b1c4dcbd5021593074922432       NO_standard_start : Either cache data is rejected or not created
FAST 1790       Code - Insiders 0913b1aa43      3604a57f-e005-4b98-935e-4b55ce85b2c11593074957074       standard_start
FAST 1450       Code - Insiders 0913b1aa43      9258c82b-3428-4bec-a7d2-ceb1b5796bcb1593074986079       standard_start
FAST 1467       Code - Insiders 0913b1aa43      662b4b0b-e703-48e8-b028-52998e1dfd5c1593075030207       standard_start
FAST 1648       Code - Insiders 0913b1aa43      a181ef81-62dc-41f8-b414-ee88e39fb5df1593075071475       standard_start
FAST 1529       Code - Insiders 0913b1aa43      0bae4416-414f-4519-9f13-f3dec57768221593075099583       standard_start
FAST 1317       Code - Insiders 0913b1aa43      cad2f464-ca98-4600-8664-540342f993e31593075144616       standard_start
FAST 1286       Code - Insiders 0913b1aa43      b679cae3-7129-46e2-ae3b-a1f6fe4e78371593075187711       standard_start
FAST 1950       Code - Insiders 0913b1aa43      7bfce2c0-acf3-478f-9c00-b2903be738891593075222945       standard_start
FAST 1610       Code - Insiders 0913b1aa43      f4e3d25b-3523-4770-ab74-f364bc358e811593075269280       standard_start
avg 1560

Stable
Summary: BEST `1229ms`, VERSION `cd9ea6488829f560dc949a8b2fb789f3cdc05f5d`, APP `Code.exe` :windows: :vscode-insiders:

SLOW 2497       Code    cd9ea64888      ce6eb651-0a79-495b-8062-bb6cf042f34e1593072242275       NO_standard_start : Either cache data is rejected or not created
FAST 1265       Code    cd9ea64888      69aa0a9e-08ce-4868-aadc-6cc4ceea39481593072277134       standard_start
FAST 1372       Code    cd9ea64888      739d506a-e999-4956-abc8-c875cfead5b31593072319330       standard_start
FAST 1293       Code    cd9ea64888      7f7df098-e9e4-4702-aee8-5d1d367ebafb1593072346399       standard_start
FAST 1349       Code    cd9ea64888      c0e2a2c1-17a1-4704-bd85-4881754ae1001593072393698       standard_start
FAST 1286       Code    cd9ea64888      b7e44d0a-81b4-4215-9fc6-36458d25b22d1593072431806       standard_start
FAST 1380       Code    cd9ea64888      70da7c7b-6251-48b4-bf27-029027ccd9cc1593072480003       standard_start
FAST 1411       Code    cd9ea64888      4bb6337b-e4ab-4ab4-b72a-cc6fb37c54661593072508249       standard_start
FAST 1229       Code    cd9ea64888      71ebd2b6-1c00-49c3-bf12-a8b14db2ff4d1593072534242       standard_start
FAST 1370       Code    cd9ea64888      7f986f6a-5249-4625-830c-5667baff4f681593072563484       standard_start
avg 1328

@jrieken
Copy link
Member

jrieken commented Jul 1, 2020

closing this as a dupe of #101083

@jrieken jrieken closed this as completed Jul 1, 2020
@github-actions github-actions bot locked and limited conversation to collaborators Aug 15, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
engineering VS Code - Build / issue tracking / etc. perf-startup
Projects
None yet
Development

No branches or pull requests

4 participants