Add methods for tracking memory allocations at a global level. #92206
+47
−0
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.
Currently the Memory class performs some form of allocation tracking but doesn't expose methods to query the counter. On top of that, we also lack a way to track which allocations were performed between different points of time, which hides pretty much any sign that there might be unnecessary allocations going on per frame.
I'm submitting this as a basic PR to use as my basis for reviewing any changes I make and tracking the impact with accurate numbers, as memory allocations are a heavy source of performance issues when they're in hot paths. For example, running the TPS demo and comparing the allocations reported by these indicators gives me about ~2000 per frame.
I'm leaving this as a draft since there's a bit of wiggle room in the design for this that we might want to discuss.