- Memory Insights: Added analysis support for "free callstack" for an allocation (i.e. callstack when an allocation if freed).
- Memory Insights: Switched CallstackId to 32 bit and moved the resolving of "id to pointer" outside of mem queries. This allows us to add the second callstack id and also ids for future metadata without increasing the size of FAllocationItem struct (from AllocationProvider).
- Memory Insights: Refactored code re ThreadId and Tracker passed from AllocationAnalysis to AllocationProvider.
- Memory Insights: Refactored code re CallstackProvider to map a CallstackId directly as an index into array of callstacks.
#rb Johan.Berg
#preflight 6201460a6773a3612898c4de
[CL 18886419 by ionut matasaru in ue5-main branch]
- Memory: Added a new query rule: **Growth vs. Decline**. Identifies \"growth\" allocations, allocated between time A and time B and freed after time B (A ? a ? B ? f) and \"decline\" allocations, allocated before time A and freed between time A and time B (a ? A ? f ? B). The \"decline\" allocations are changed to have negative size, so the size aggregation shows variation between A and B.
- Memory: Fixed the iteration over SBIF offsetted cells resulting in some cells to be skipped when checked by queries.
#rb Catalin.Dragoiu
#preflight 61d320cdec35d1b940c9064b
#ROBOMERGE-AUTHOR: ionut.matasaru
#ROBOMERGE-SOURCE: CL 18501541 in //UE5/Release-5.0/... via CL 18501576
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18501584 by ionut matasaru in ue5-release-engine-test branch]
- Memory: Improved speed of live allocs matching in memory analysis.
- Memory: Fixed N/A callstacks in a query made before analysis is completed.
#jira UE-110125
#rb Catalin.Dragoiu
[CL 15736769 by ionut matasaru in ue5-main branch]
- Memory: Added two new query rules: "Free Events" and "Alloc Events".
- Memory: Fixed tooltip for query rules in the dropdown list not showing the name of markers.
- Memory: Fixed margins around "target window".
- Memory: Simplified status text with query rule info in Allocs Tree view.
#rb Catalin.Dragoiu
[CL 15364692 by ionut matasaru in ue5-main branch]
Code that resolved callstacks from owner id was missing from "live allocations" set, causing many N/A callstacks in memory queries.
#rb ionut.matasaru
#rnx
[CL 15163197 by Johan Berg in ue5-main branch]
- Implemented mem alloc queries also for live allocs.
- Implemented analysis for llm tags associated with allocations (based on initial work by Johan.Berg).
- Changed granularity of memory allocations timelines to 0.1ms (from 1ms).
- Fixed allotment of allocations in SbTree's offsetted cells.
- Fixed queries to handle also cases where multiple cells have exact same timestamps.
- Added more debug/validation code for AllocationsProvider.
#rb Catalin.Dragoiu
[CL 14938990 by ionut matasaru in ue5-main branch]
- Added detection for AllocationsProvider availability to know when to enable the Memory Insights tab (in addition to detecting availability of the LLM tags memory provider).
- Simplified the API for allocation queries (using A, B, C, D time markers).
- Added initial AllocationsAnalysis that processes the allocation trace events and delegates them to AllocationsProvider.
- Added initial AllocationsProvider. Uses a simple map for live allocations.
- Added FSbTree ("SBIF with offsetted cells" data structure for storing the retired allocations in AllocationsProvider).
- Added async allocation queries (based on A, B, C, D time markers). Currently it uses a single TaskGraph task.
- Added "LogTraceServices" log category for general purpose logging in TraceServices module.
#rb Catalin.Dragoiu
[CL 14813195 by ionut matasaru in ue5-main branch]