fix settings editor memory leak#216763
Merged
rzhao271 merged 3 commits intomicrosoft:mainfrom Jun 21, 2024
Merged
Conversation
rzhao271
reviewed
Jun 21, 2024
src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts
Outdated
Show resolved
Hide resolved
rzhao271
approved these changes
Jun 21, 2024
TylerLeonhardt
approved these changes
Jun 21, 2024
bricefriha
pushed a commit
to bricefriha/vscode
that referenced
this pull request
Jun 26, 2024
* try to fix settings editor memory leak * clean up code * remove unused clear
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Helps with #216649
Stack Trace
By measuring growing disposable stores, it showed this stack trace very often:
Possible memory leak cause
It seems when all editors are closed, the last opened editor always remains. But when setting a new editor input, a
input.onWillDisposelistener is added to theSettingsEditor2. When opening theSettingsEditor2again, a newinput.onWillDisposelistener is added to the initialSettingsEditor2.Testing
For testing, I ran the same test script opening and closing the settings editor 197 times which showed that the number of
SettingsEditor2Inputinstances was reduced from 197 to 2.