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
perf: use flat_set, flat_map for small, trivially-moved containers #40817
Merged
Conversation
This file contains 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
ckerr
changed the title
perf: use flat_set, flat_map for small, trivially-moved keys/vals
perf: use flat_set, flat_map for small, trivially-moved containers
Dec 22, 2023
ckerr
force-pushed
the
refactor/use-base-small-map
branch
from
December 22, 2023 23:07
d154538
to
24340d4
Compare
ckerr
force-pushed
the
refactor/use-base-small-map
branch
2 times, most recently
from
December 23, 2023 15:21
af26c52
to
c29afe5
Compare
refactor: use base::flat_set for ElectronRendererClient::injected_frames_
ckerr
force-pushed
the
refactor/use-base-small-map
branch
from
January 3, 2024 17:22
c29afe5
to
d6efea9
Compare
jkleinsc
approved these changes
Jan 4, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
codebytere
approved these changes
Jan 5, 2024
No Release Notes |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description of Change
base::flat_map
andbase::flat_set
are STL-like map & set containers that are implemented usingstd::vector
instead of an red-black tree, so they have good memory locality and lower overhead, especially for containers with smaller sizes. The upstream usage advice recommends:This PR replaces
std::map
andstd::set
with their flat counterparts iff they match those recommendations: they are all smaller containers with trivially-move
able types (e.g. ints and pointers).This is a general cleanup PR so no specific stateholders, but all reviews welcomed
Checklist
npm test
passesRelease Notes
Notes: none