-
Notifications
You must be signed in to change notification settings - Fork 5
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
chore: improve frontend startup performance #90
Conversation
I was wondering how we are measuring startup time. In the case of a regular electron startup, these changes do not make a noticeable improvement, at least not a second. |
In the worst case it's just 300ms faster which is not that noticeable in the overall Electron startup, especially if running in I was simply relying on the internal measurements which you can retrieve when starting the application with |
c255f10
to
acd9139
Compare
@tsmaeder Are you fine with the current state of the PR or do you see any problems with getting it merged. I would like to open it against upstream. |
I also had a look at this.Everything seems to work as before and I can confirm the reported startup time improvements (based on the stopwatch measurements with |
* Add follow-up section to PR template fixed eclipse-theia#12900 Signed-off-by: Jonas Helming <[email protected]>
…-theia#12867) Signed-off-by: Christian Radke <[email protected]>
Retiring the use of `context` in keybindings - `Blame Keybinding context` deletion - `Terminal Keybinding context` deletion - `Console Keybinding Context` deletion - `Debug Keybinding Context` deletion - `Editor Keybinding Context` deletion - `Notification Keybinding Contribution` deletion - `Navigator Keybinding Context` deletion Signed-off-by: Fernando Ascencio <[email protected]>
) Clarifies the error by suggesting it could be caused by network configuration issues. Contributed by STMicroelectronics Signed-off-by: Samuel BERG <[email protected]>
Closes eclipse-theia#12878 Signed-off-by: FernandoAscencio <[email protected]> Co-authored-by: Vincent Fugnitto <[email protected]>
The frontend awaits 'initialize', 'configure' and 'onStart' for all frontend contributions. It's therefore very important that no expensive code is run there. By not awaiting expensive operations in - DebugFrontendApplicationContribution.onStart (~300ms) - EditorNavigationContribution.onStart (~36-400ms) - TerminalFrontendContribution.onStart (~100-300ms) the reported startup time without using plugins is reduced by ~400-1000ms which is an improvement of ~20-40%. Contributed on behalf of STMicroelectronics
acd9139
to
471a050
Compare
Closed in favor of eclipse-theia#12936 |
The frontend awaits
initialize
,configure
andonStart
for allfrontend contributions. It's therefore very important that no expensive
code is run there.
By not awaiting expensive operations in
the reported startup time without using plugins is reduced by ~400-1000ms
which is an improvement of ~20-40%.
Contributed on behalf of STMicroelectronics
Note: I also tried to run all
initialize
,configure
andonStart
in "parallel", usingPromise.all
. However when combined with the remaining changes this actually lead to a slowdown, probably because the Javascript thread is already fully utilized.