Reduce memory usage substantially - #6901
Open
metalgearsloth wants to merge 2 commits into
Open
Conversation
- Remove unnecessary mappings after resolving prototypes. The downside is we make TryGetMapping much slower (which is used rarely and on slowpaths) but we also significantly reduce memory usage. - Shallow copy parent nodes and pretend prototype datanodes are readonly until we get a better read-only API. If a child changes 1 component it shouldn't deep-copy 1 morbillion nodes. - Remove 2 ints per datanode for 99.99% of them and use a scrunkly table for the remainders. - Use array for sequencedatanode storage where we can get away with it otherwise fall back to list.
Contributor
|
are xaml proxies even needed for headless it sounds like that can be skipped |
Contributor
Author
|
Ideally you'd run headless clients on release where (hopefully) xamlxproxymanager shouldn't be running, but that should also be disabled on debug or have a CVar for it yeah. |
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 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.
Client uses 400MB atm

Down to 290MB

Unfortunately the actual non-headless client uses a significant amount of memory for textures + audio (for obvious reasons) but for headless client this helps a lot.