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

Performance regression in insiders #177257

Closed
bpasero opened this issue Mar 15, 2023 · 25 comments
Closed

Performance regression in insiders #177257

bpasero opened this issue Mar 15, 2023 · 25 comments
Assignees
Labels
perf perf-startup regression Something that used to work is now broken
Milestone

Comments

@bpasero
Copy link
Member

bpasero commented Mar 15, 2023

Overall ellapsed trend:

image

Evident increase in time to load workbench bundle:

image

@bpasero bpasero added perf perf-startup regression Something that used to work is now broken labels Mar 15, 2023
@bpasero bpasero added this to the March 2023 milestone Mar 15, 2023
@bpasero
Copy link
Member Author

bpasero commented Mar 21, 2023

Newer runs are quite better at least on Windows, still on the edge of being slow (1.9s):

Image

@jrieken
Copy link
Member

jrieken commented Mar 22, 2023

Looks like code loading times went (consistently) up with b60db78. The size of workbench-main didn't really change - it's 10.3MB for both versions. So, this is either slower code loading by electron (cc @deepak1556) or more code execution while loading

Screenshot 2023-03-22 at 17 14 48

@jrieken
Copy link
Member

jrieken commented Mar 22, 2023

change between those two builds: 502ac5b...b60db78

@jrieken
Copy link
Member

jrieken commented Mar 22, 2023

I can reproduce locally when running the builds in comparison. There is a slowdown on first run (which doesn't have cached data) and on subsequent runs. The slowdown seems constant which indicates towards a code execution problem

502ac b60db
366 386
136 169
140 158
135 156

@bpasero
Copy link
Member Author

bpasero commented Mar 22, 2023

I also did some testing today. First of all, even on the macOS perf machine, we lost time in the require of workbench main (timers.ellapsedrequire). The increase is quite stable and has not recovered:

image

I did compare startup profiles on macOS for the fast version on March 1st and then today but could not spot something obvious. My hope was that maybe the _invokeFactory call would be slower, hinting towards an expensive module, but that was not showing up. We did however add more contributions to the workbench, including interactive.

The findings around cached data are good, I did not specifically look into that. To my knowledge there was no Electron update, not even a minor one. But we should double check that for example no Profile-Guided-Optimization change sneaked into the insiders build.

@deepak1556
Copy link
Collaborator

Runtime has not changed since v1.76 branched off, we did have a small duration of Electron 22 being merged into main but then reverted to the same Electron 19 version as v1.76 branch.

But we should double check that for example no Profile-Guided-Optimization change sneaked into the insiders build.

No change in this area as well

@deepak1556 deepak1556 removed their assignment Mar 23, 2023
@lorand-horvath
Copy link

lorand-horvath commented Mar 23, 2023

@bpasero I'd like to add something that I've noticed in Insiders since around March 9-10, which might be related to the perf regression you've measured since then.
Not sure if you're familiar with this issue #130320 (comment) which basically pops up a notification every 5-20 minutes, saying that the terminal's host process is unresponsive - so I have to restart it to be able to use the terminal again (the time it takes for the notification to re-appear varies a lot and pops up mostly when VSCode is out of focus, so when I'm working in another app on the secondary monitor).

My point here is that around March 9 (maybe a couple of days before) the popup stopped appearing in Insiders - mostly - not appearing for several hours, even days on end. However, I think the error still occurs in the background, without a notification being shown.

As additional information, if you don't want to search the long thread, here's a typical example of a complete error notification appearing before March 9 in Insiders and also in the official VSCode 1.76 on a regular basis (ongoing since June 2022) #130320 (comment)

I'm not sure if this has anything to do with the performance regression, I thought I'd mention it in case it proves to be somehow related.
Also worth mentioning that this has been reported many times in other issues, but they are always closed as duplicate of #130320 - so it's not at all a rare occurrence - happens on Win 10, 7, Linux and I think I've seen a report on MacOS as well.

@bpasero bpasero added the important Issue identified as high-priority label Mar 24, 2023
@joaomoreno
Copy link
Member

joaomoreno commented Mar 24, 2023

Starting to bisect this using OSS and vscode-perf.

@joaomoreno
Copy link
Member

This is very nuanced... fluctuations are very small between commits... a bisect pointed to ef1542d, but I'm not entire sure of it either.

The fact is that that commit range produced 864 (1,406 additions and 542 deletions) new lines of code... could this just be a lot of new code?

@joaomoreno
Copy link
Member

I take it back. There seems to be no difference when running out of sources, I fear we might have to run out of builds from that commit range:

➜  vscode2 git:(b60db78000b) git checkout 502ac5b
Previous HEAD position was b60db78000b Implement copy/vote action toolbars in interactive session (#176711)
HEAD is now at 502ac5b213e ci: switch to core20 for snap (#127320)
➜  vscode2 git:(502ac5b213e) npx @vscode/vscode-perf --folder . --file package.json --build scripts/code.sh -m code/willLoadWorkbenchMain-code/didLoadWorkbenchMain --runs 5
[perf] running session 1 of 5...
[perf] code/willLoadWorkbenchMain-code/didLoadWorkbenchMain: 905ms (current), 905ms (fastest), 905ms (slowest), 905ms (median)
[perf] running session 2 of 5...
[perf] code/willLoadWorkbenchMain-code/didLoadWorkbenchMain: 912ms (current), 905ms (fastest), 912ms (slowest), 912ms (median)
[perf] running session 3 of 5...
[perf] code/willLoadWorkbenchMain-code/didLoadWorkbenchMain: 910ms (current), 905ms (fastest), 912ms (slowest), 910ms (median)
[perf] running session 4 of 5...
[perf] code/willLoadWorkbenchMain-code/didLoadWorkbenchMain: 917ms (current), 905ms (fastest), 917ms (slowest), 912ms (median)
[perf] running session 5 of 5...
[perf] code/willLoadWorkbenchMain-code/didLoadWorkbenchMain: 907ms (current), 905ms (fastest), 917ms (slowest), 910ms (median)
[perf] Summary:
[perf] code/willLoadWorkbenchMain-code/didLoadWorkbenchMain: 905ms (fastest), 917ms (slowest), 910ms (median)


^C
➜  vscode2 git:(502ac5b213e) git checkout b60db78
Previous HEAD position was 502ac5b213e ci: switch to core20 for snap (#127320)
HEAD is now at b60db78000b Implement copy/vote action toolbars in interactive session (#176711)
➜  vscode2 git:(b60db78000b) npx @vscode/vscode-perf --folder . --file package.json --build scripts/code.sh -m code/willLoadWorkbenchMain-code/didLoadWorkbenchMain --runs 5
[perf] running session 1 of 5...
[perf] code/willLoadWorkbenchMain-code/didLoadWorkbenchMain: 909ms (current), 909ms (fastest), 909ms (slowest), 909ms (median)
[perf] running session 2 of 5...
[perf] code/willLoadWorkbenchMain-code/didLoadWorkbenchMain: 913ms (current), 909ms (fastest), 913ms (slowest), 913ms (median)
[perf] running session 3 of 5...
[perf] code/willLoadWorkbenchMain-code/didLoadWorkbenchMain: 912ms (current), 909ms (fastest), 913ms (slowest), 912ms (median)
[perf] running session 4 of 5...
[perf] code/willLoadWorkbenchMain-code/didLoadWorkbenchMain: 914ms (current), 909ms (fastest), 914ms (slowest), 913ms (median)
[perf] running session 5 of 5...
[perf] code/willLoadWorkbenchMain-code/didLoadWorkbenchMain: 958ms (current), 909ms (fastest), 958ms (slowest), 913ms (median)
[perf] Summary:
[perf] code/willLoadWorkbenchMain-code/didLoadWorkbenchMain: 909ms (fastest), 958ms (slowest), 913ms (median)
^C

@bpasero
Copy link
Member Author

bpasero commented Mar 24, 2023

I think I am throwing the towel on this one. The closest I can find of an issue is that the task to evaluate and compile the workbench main script got slower.

March 1st
image

Today
image

At the same time, workbench.desktop.main.js size increased by 200kb from 10.2MB to 10.4MB which does not really explain the rather large slowdown we see. But maybe we do hit some kind of threshold now with Chrome in some bizarre way.

It is also very much possible that new code we added now spends more time in the module factory. That would explain why overall we got slower, but when looking into the Evaluate Script and Compile Script times, there is no evidence of a slowdown. However the entire task has tons of more smaller chunks that contribute to it:

March 1st
image

Today
image

Attaching the profiles used for this measurement:

@joaomoreno
Copy link
Member

👌 I suggest moving this out to March.

@lorand-horvath
Copy link

I suggest moving this out to March.

April? 😄

@bpasero
Copy link
Member Author

bpasero commented Mar 25, 2023

Using vscode-bisect between 26fe31fc668187dc1f845b88831ae1ac7d9a3f4a and b9226e1ccc11625bcb42b55efb795e07ee533bb0 it really seems to me like a steady increase in time to require. I cannot find a single build where the change is drastic, rather I see increases around 5-10ms the newer build I test.

One thing I had forgotten: we did update to Electron 22 on Feb 28 and reverted only on March 2nd. That explains why we had very fast runs and slower ones shortly after:

image

I did a quick test of reverting a few commits that I found suspicious and experimented with startup times without much luck.

One idea for next things to try is to run with cached data disabled just to see if this is cached data related, though I highly doubt that given my local testing.

@lorand-horvath
Copy link

lorand-horvath commented Mar 25, 2023

One thing I had forgotten: we did update to Electron 22 on Feb 28 and reverted only on March 2nd. That explains why we had very fast runs and slower ones shortly after:

^ This might be it. I remember the Electron 22 Exploration builds (from Jan-Feb, before the few day stint in Insiders) seemed way snappier when testing, see #166265 (comment) and #166265 (comment)

@bpasero
Copy link
Member Author

bpasero commented Mar 25, 2023

Ah yeah 👍 . We plan to bring Electron 22 back next week.

@bpasero
Copy link
Member Author

bpasero commented Mar 25, 2023

Another idea is to print detailed loader stats in the perf view editor. This was for some reason disabled in 2092016 but I have 2 builds running (old and latest) to restore this momentarily for perf testing purposes.

@bpasero
Copy link
Member Author

bpasero commented Mar 26, 2023

Almost 100 new AMD modules in latest (1.77) to load that were not present in 1.76 according to loader stats:

vs/editor/common/core/lineRange
vs/editor/common/services/treeViewsDnd
vs/editor/contrib/stickyScroll/browser/stickyScrollElement
vs/nls!vs/platform/contextkey/common/contextkey
vs/nls!vs/platform/contextkey/common/scanner
vs/nls!vs/platform/extensionManagement/common/extensionTipsService
vs/nls!vs/workbench/api/browser/mainThreadNotebookSaveParticipant
vs/nls!vs/workbench/contrib/commands/common/commands.contribution
vs/nls!vs/workbench/contrib/interactiveEditor/browser/interactiveEditorActions
vs/nls!vs/workbench/contrib/interactiveEditor/browser/interactiveEditorWidget
vs/nls!vs/workbench/contrib/interactiveEditor/common/interactiveEditor
vs/nls!vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionActions
vs/nls!vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionCodeblockActions
vs/nls!vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionCopyActions
vs/nls!vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionExecuteActions
vs/nls!vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionTitleActions
vs/nls!vs/workbench/contrib/interactiveSession/browser/contrib/interactiveSessionInputEditorContrib
vs/nls!vs/workbench/contrib/interactiveSession/browser/interactiveSession.contribution
vs/nls!vs/workbench/contrib/interactiveSession/browser/interactiveSessionContributionServiceImpl
vs/nls!vs/workbench/contrib/interactiveSession/browser/interactiveSessionEditorInput
vs/nls!vs/workbench/contrib/interactiveSession/browser/interactiveSessionListRenderer
vs/nls!vs/workbench/contrib/interactiveSession/browser/interactiveSessionWidget
vs/nls!vs/workbench/contrib/interactiveSession/common/interactiveSessionColors
vs/nls!vs/workbench/contrib/interactiveSession/common/interactiveSessionContextKeys
vs/nls!vs/workbench/contrib/interactiveSession/common/interactiveSessionServiceImpl
vs/nls!vs/workbench/contrib/issue/common/issue.contribution
vs/nls!vs/workbench/contrib/notebook/browser/contrib/saveParticipants/saveParticipants
vs/nls!vs/workbench/contrib/remote/browser/remoteStartEntry
vs/nls!vs/workbench/contrib/search/browser/searchFindInput
vs/nls!vs/workbench/contrib/terminalContrib/accessibility/browser/terminal.accessibility.contribution
vs/nls!vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibilityHelp
vs/nls!vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibleBuffer
vs/nls!vs/workbench/contrib/terminalContrib/developer/browser/terminal.developer.contribution
vs/nls!vs/workbench/contrib/terminalContrib/environmentChanges/browser/terminal.environmentChanges.contribution
vs/nls!vs/workbench/contrib/terminalContrib/find/browser/terminal.find.contribution
vs/nls!vs/workbench/contrib/terminalContrib/links/browser/terminal.links.contribution
vs/nls!vs/workbench/contrib/terminalContrib/links/browser/terminalLinkDetectorAdapter
vs/nls!vs/workbench/contrib/terminalContrib/links/browser/terminalLinkManager
vs/nls!vs/workbench/contrib/terminalContrib/links/browser/terminalLinkQuickpick
vs/nls!vs/workbench/contrib/testing/common/testingContentProvider
vs/nls!vs/workbench/contrib/welcomeGettingStarted/browser/featuredExtensionService
vs/nls!vs/workbench/contrib/welcomeGettingStarted/browser/startupPage
vs/nls!vs/workbench/contrib/welcomeWalkthrough/common/walkThroughUtils
vs/platform/extensionRecommendations/common/extensionRecommendationsIpc
vs/editor/common/services/treeViewsDndService
vs/platform/ipc/common/mainProcessService
vs/platform/native/common/native
vs/editor/contrib/codeAction/browser/codeActionController
vs/editor/contrib/stickyScroll/browser/stickyScrollModelProvider
vs/platform/storage/common/storageService
vs/workbench/browser/parts/editor/tabFocus
vs/workbench/contrib/codeEditor/browser/editorLineNumberMenu
vs/workbench/contrib/commands/common/commands.contribution
vs/workbench/contrib/interactiveEditor/common/interactiveEditor
vs/workbench/contrib/interactiveEditor/common/interactiveEditorServiceImpl
vs/workbench/contrib/interactiveSession/browser/interactiveSessionFollowups
vs/workbench/contrib/interactiveSession/browser/interactiveSessionOptions
vs/workbench/contrib/interactiveSession/common/interactiveSessionColors
vs/workbench/contrib/interactiveSession/common/interactiveSessionContextKeys
vs/workbench/contrib/interactiveSession/common/interactiveSessionContributionService
vs/workbench/contrib/interactiveSession/common/interactiveSessionModel
vs/workbench/contrib/interactiveSession/common/interactiveSessionService
vs/workbench/contrib/interactiveSession/common/interactiveSessionWidgetHistoryService
vs/workbench/contrib/interactiveSession/common/interactiveSessionWordCounter
vs/workbench/contrib/interactiveSession/common/interactiveSessionViewModel
vs/workbench/contrib/notebook/browser/contrib/viewportWarmup/viewportWarmup
vs/workbench/contrib/search/browser/searchFindInput
vs/workbench/contrib/terminal/browser/terminalExtensions
vs/workbench/contrib/terminal/browser/xterm/terminalTypeAheadAddon
vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibilityHelp
vs/workbench/contrib/terminalContrib/find/browser/terminalFindWidget
vs/workbench/contrib/terminalContrib/links/browser/links
vs/workbench/contrib/terminalContrib/links/browser/terminalLinkHelpers
vs/workbench/contrib/terminalContrib/links/browser/terminalExternalLinkDetector
vs/workbench/contrib/terminalContrib/links/browser/terminalLink
vs/workbench/contrib/terminalContrib/links/browser/terminalLinkDetectorAdapter
vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing
vs/workbench/contrib/terminalContrib/links/browser/terminalLinkProviderService
vs/workbench/contrib/terminalContrib/links/browser/terminalLinkQuickpick
vs/workbench/contrib/terminalContrib/links/browser/terminalLinkResolver
vs/workbench/contrib/terminalContrib/links/browser/terminalLocalLinkDetector
vs/workbench/contrib/terminalContrib/links/browser/terminalUriLinkDetector
vs/workbench/contrib/terminalContrib/links/browser/terminalWordLinkDetector
vs/workbench/contrib/welcomeGettingStarted/browser/featuredExtensionService
vs/workbench/services/extensions/common/extensionHostKind
vs/workbench/services/extensions/common/extensionRunningLocation
vs/workbench/contrib/interactiveSession/common/interactiveSessionServiceImpl
vs/workbench/contrib/remote/browser/remoteStartEntry
vs/workbench/services/extensions/common/extensionsProposedApi
vs/workbench/api/browser/mainThreadInteractiveEditor
vs/workbench/api/browser/mainThreadInteractiveSession
vs/workbench/contrib/issue/common/issue.contribution
vs/workbench/contrib/terminalContrib/links/browser/terminalLinkOpeners
vs/workbench/contrib/terminalContrib/links/browser/terminalLinkManager
vs/workbench/services/telemetry/common/workbenchCommonProperties
vs/workbench/contrib/interactiveSession/browser/interactiveSessionListRenderer
vs/workbench/contrib/interactiveSession/browser/contrib/interactiveSessionCodeBlockCopy
vs/workbench/contrib/interactiveSession/browser/interactiveSessionWidget
vs/workbench/contrib/interactiveEditor/browser/interactiveEditorWidget
vs/workbench/contrib/interactiveEditor/browser/interactiveEditorActions
vs/workbench/contrib/interactiveEditor/browser/interactiveEditor.contribution
vs/workbench/contrib/interactiveSession/browser/contrib/interactiveSessionInputEditorContrib
vs/workbench/contrib/interactiveSession/browser/interactiveSessionEditor
vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionActions
vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionCodeblockActions
vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionCopyActions
vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionExecuteActions
vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionTitleActions
vs/workbench/contrib/interactiveSession/browser/interactiveSessionEditorInput
vs/workbench/contrib/interactiveSession/browser/interactiveSessionSidebar
vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibleBuffer
vs/workbench/services/extensions/electron-sandbox/extensionsScannerService
vs/workbench/api/browser/mainThreadNotebookSaveParticipant
vs/workbench/contrib/notebook/browser/contrib/saveParticipants/saveParticipants
vs/workbench/contrib/interactiveSession/browser/interactiveSessionContributionServiceImpl
vs/workbench/contrib/interactiveSession/browser/interactiveSession.contribution
vs/workbench/contrib/terminalContrib/accessibility/browser/terminal.accessibility.contribution
vs/workbench/contrib/terminalContrib/developer/browser/terminal.developer.contribution
vs/workbench/contrib/terminalContrib/environmentChanges/browser/terminal.environmentChanges.contribution
vs/workbench/contrib/terminalContrib/find/browser/terminal.find.contribution
vs/workbench/contrib/terminalContrib/links/browser/terminal.links.contribution
vs/workbench/contrib/terminal/terminal.all
vs/workbench/services/extensions/common/extensionRunningLocationTracker

Also, loader status confirm the slower require of entry modules:

1.76

| Module                                                                                                                                                                                                                                                                           | Duration           |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
| ./Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js                    | 117.90000000596046 |
| ./Contents/Resources/app/out/vs/workbench/workbench.desktop.main.nls.js                | 10.400000005960464 |
| ./Contents/Resources/app/out/../node_modules.asar/vscode-textmate/release/main.js      | 1.5                |
| ./Contents/Resources/app/out/../node_modules.asar/tas-client-umd/lib/tas-client-umd.js | 49.60000002384186  |
| ./Contents/Resources/app/out/../node_modules.asar/vscode-oniguruma/release/main.js     | 43.099999994039536 |

1.77

| Module                                                                                                                                                                                                                                                                                         | Duration           |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
| ./Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js                                  | 163.69999998807907 |
| ./Contents/Resources/app/out/vs/workbench/workbench.desktop.main.nls.js                              | 13.599999994039536 |
| ./Contents/Resources/app/out/../node_modules.asar/vscode-textmate/release/main.js                    | 1.5999999940395355 |
| ./Contents/Resources/app/out/../node_modules.asar/tas-client-umd/lib/tas-client-umd.js               | 176.80000001192093 |
| ./Contents/Resources/app/out/../node_modules.asar/vscode-oniguruma/release/main.js                   | 57.79999998211861  |

The larger amount of time spend to load a library such as tas is strange.

@bpasero
Copy link
Member Author

bpasero commented Mar 26, 2023

The slowdown in loading times especially around tas is incredible:

1.76 (Windows)

### Load AMD-module

| Module                                                                                                                                                                      | Duration           |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
| ./resources/app/out/vs/workbench/workbench.desktop.main.js                    | 474.39999997615814 |
| ./resources/app/out/vs/workbench/workbench.desktop.main.nls.js                | 97.30000001192093  |
| ./resources/app/out/../node_modules.asar/vscode-textmate/release/main.js      | 5.100000023841858  |
| ./resources/app/out/../node_modules.asar/tas-client-umd/lib/tas-client-umd.js | 120.19999998807907 |
| ./resources/app/out/../node_modules.asar/vscode-oniguruma/release/main.js     | 167.19999998807907 |

1.77 (Windows)

### Load AMD-module

| Module                                                                                                                                                                      | Duration           |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
| ./resources/app/out/vs/workbench/workbench.desktop.main.js                    | 488.7000000476837  |
| ./resources/app/out/vs/workbench/workbench.desktop.main.nls.js                | 96                 |
| ./resources/app/out/../node_modules.asar/vscode-textmate/release/main.js      | 4.5                |
| ./resources/app/out/../node_modules.asar/tas-client-umd/lib/tas-client-umd.js | 662.8000000119209  |
| ./resources/app/out/../node_modules.asar/vscode-oniguruma/release/main.js     | 304.30000001192093 |

Why would there be more than 500ms lost loading tas-client-umd.js? The module seems to not have changed at all.

@lorand-horvath
Copy link

lorand-horvath commented Mar 26, 2023

@bpasero Strange indeed... Don't want to nag or anything, but is it possible for this issue to have anything to do with my observation above (reproducible)? #177257 (comment)

That issue has been going on for more than 9 months now and then it suddenly stops (mostly) at the beginning of March? I'm inclined to think the timing is not a coincidence.

@bpasero
Copy link
Member Author

bpasero commented Mar 26, 2023

I am not sure, this performance regression happened over the course of 2 weeks I would say, not on a specific date. In my testing I see startup times getting slower and slower around the code loading and execution as outlined in comments above.

Maybe I had misunderstood your reaction, but I had thought that the Electron 22 revert might have caused what you saw? Though that happened earlier in beginning of March.

@bpasero bpasero removed the important Issue identified as high-priority label Mar 28, 2023
@bpasero bpasero modified the milestones: March 2023, April 2023 Mar 28, 2023
@bpasero
Copy link
Member Author

bpasero commented Mar 28, 2023

At least tas-client-umd are loaded async when needed. For vscode-textmate and vscode-oniguruma I wonder if async tokenization would allow us to avoid having to load these modules into the renderer. But I think we have not yet enabled that by default.

@bpasero
Copy link
Member Author

bpasero commented Mar 29, 2023

7f329fe should make things better, but we can keep this open a bit to verify.

@bpasero
Copy link
Member Author

bpasero commented Apr 3, 2023

I think we can probably close this one out, results from the past days on Windows (ellapsed):

image

We even had a very good one at <1850.

@bpasero bpasero closed this as completed Apr 4, 2023
@lorand-horvath
Copy link

The latest Insiders 1.78 with Electron 22.4.3 is running great for me! Thank you @bpasero and @deepak1556

@github-actions github-actions bot locked and limited conversation to collaborators May 19, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
perf perf-startup regression Something that used to work is now broken
Projects
None yet
Development

No branches or pull requests

5 participants