Commit Graph

167 Commits

Author SHA1 Message Date
josh adams
46a830d6b4 - Replacing many uses of LoadGlobalIniFile and LoadExternalIniFile with FCOnfigContext
#rb matt.peters
#p4v-preflight-copy 20293528
#preflight 629665d15238916c514359ad

[CL 20441581 by josh adams in ue5-main branch]
2022-05-31 16:25:06 -04:00
Catalin Dragoiu
0b478d5694 Cooking Profiler Prototype
#rb Ionut.Matasaru  Matt Peters
#preflight 628b8690693c5e1de2773a39

[CL 20327158 by Catalin Dragoiu in ue5-main branch]
2022-05-23 10:13:54 -04:00
ionut matasaru
d5e9b01154 [Insights]
- Counters/Stats: Added support for stats counters with "ShouldClearEveryFrame" flag to actually reset to 0 at beginning of each Game frame (during analysis).
  - Counters/Stats: Added separate counters for "1/frame" variants of stats counters with "ShouldClearEveryFrame" flag. Normal counters shows all intermediate points (variation within a single frame), while the new ones (that have same name but with "(1/frame)" suffix) only shows a single value per each Game thread (i.e. last value in respective frame). These new counters are more useful when investigating variation between multiple frames.
  - Counters/Stats: Added "Insights/FStatsAnalyzer" LLM tag to reduce Untagged mem allocations.

#jira UE-152689
#rb Catalin.Dragoiu
#preflight 628374123f6aa88b1a72af22

[CL 20258783 by ionut matasaru in ue5-main branch]
2022-05-18 06:19:26 -04:00
ionut matasaru
4688b36357 [Insights] Added initial implementation for MetadataProvider.
#rb Johan.Berg
#preflight 62738e8e432d5c693e7bd2a3

[CL 20055895 by ionut matasaru in ue5-main branch]
2022-05-05 06:14:08 -04:00
Josh Adams
98263b82d4 - Updated symslib for getting symbol info by name instead of location
#rb Martins.Mozeiko
#jira none
#preflight 62708a6fc740179e4a31fa1c

[CL 20019429 by Josh Adams in ue5-main branch]
2022-05-02 21:57:33 -04:00
ionut matasaru
024b24d27b [Insights] Fixed NonUnity compile errors.
#jira UE-148082
#rb none
#preflight 624bfe75b6084b983285be6f

[CL 19621900 by ionut matasaru in ue5-main branch]
2022-04-05 04:38:50 -04:00
CarlMagnus Nordin
8984c81407 UnrealInsights: Improved callstack butterfly, recursive calls will now be merged instead of displayed as individual nodes in the tree
#preflight 623ad714c3399da9532bbf8a
#rb ionut.matasaru

[CL 19492566 by CarlMagnus Nordin in ue5-main branch]
2022-03-24 03:19:09 -04:00
Catalin Dragoiu
e0475b1694 Screenshot tracing initial implementation
#rb Ionut.Matasaru Johan.Berg
#preflight 6239f65abc1cf2803864a90c

[CL 19467957 by Catalin Dragoiu in ue5-main branch]
2022-03-22 12:35:42 -04:00
Johan Berg
2954005ff2 [Insights] Hierarchical tag view in memory queries.
* Adds logic to sort tags into correct hierarchy in analysis, regardless if the tag was declared as an LLMTag enum, name based tag or declared before it's parent has been declared.
* Add new class to break down memory allocs into hiearchical tags tree.

#rb ionit.matasaru
#preflight 623866cd88538cd45ec5ccc1

[CL 19450624 by Johan Berg in ue5-main branch]
2022-03-21 08:09:19 -04:00
Catalin Dragoiu
f10f0edcf5 [Insights] Fix crash when receiving allocations without callstacks due to late connect.
#rb Johan.Berg
#preflight 6230b4d64134af5cef7f3092

[CL 19387355 by Catalin Dragoiu in ue5-main branch]
2022-03-15 12:14:28 -04:00
ionut matasaru
0fa04bdb8e [Insights]
- Added "Discovered" status for symbol resolving of a module.
  - Fixed deadlock for analysis thread when session completes. This bug also didn't allowed Insights app to terminate when closed. The bug occurs for relatively short mem trace sessions when the session analysis completes before callstack resolving fully loads all modules.
  - Fixed issue where number of Discovered symbols for a module was lower than Resolved + Failed. Note: This issue might still occur when a module is reloaded, but should not occur anymore for normal callstack resolving.

#rb Johan.Berg
#preflight 62288cd031133a23da76cf94

[CL 19320366 by ionut matasaru in ue5-main branch]
2022-03-09 10:40:47 -05:00
ionut matasaru
26f47b060b [Insights]
- Improved performance of memory analysis (processing of live allocations in AllocationsProvider) with up to 50% (i.e. twice as fast). This is achived by using a better hash for TMap for long living allocations. Also switched the short living allocations to use only the linked list, with a reduced size (64 allocs).
  - Delayed initialization of SystemMemory heap to when the allocations provider inits (to save memory usage when traces does not have mem alloc events).
  - Added option to enable an initial "reserve" number for TMap (one used for long living allocations). Benchmarks shows further performance increase when using large reserve numbers, but mem cost becomes too high. So kept this 0 (unset) by default.
  - Added error checking for very large mem traces (when total number of mem events could exceed 32 bit limit).

Benchmarks:
  * analysis of a 32s session: from 17.6s to 8.3s (-53%)
  * analysis of a 7min session: from 88s to 46s (-48%)

#jira UE-135890
#rb Johan.Berg
#preflight 620fab43a96c65b0d81a9566

[CL 19070177 by ionut matasaru in ue5-main branch]
2022-02-22 04:14:31 -05:00
Sebastian Thomeczek
8691e4a479 Stats Trace: Add stat group tracking
#rb Ionut.Matasaru
#jira none
#preflight
#preflight 620683bab84973a2bb8cfb43

[CL 18952844 by Sebastian Thomeczek in ue5-main branch]
2022-02-11 10:57:43 -05:00
ionut matasaru
3b4555fa96 [Insights]
- Changed CallstackId to 32 bits also for CallstacksProvider API.
  - Also fixed static analysis warning (false positive).

#rb Johan.Berg
#preflight 62023f0be85c7a08bbde4499

[CL 18900490 by ionut matasaru in ue5-main branch]
2022-02-08 05:54:58 -05:00
ionut matasaru
d2f594bb15 [Insights]
- 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]
2022-02-07 11:28:45 -05:00
catalin dragoiu
18057dcef0 [Insights] Fix Task Graph Insights crash when late connecting
#jira UE-140521
#rb Ionut.Matasaru
#preflight 61f7eb50114ec25fe0990e10

#ROBOMERGE-AUTHOR: catalin.dragoiu
#ROBOMERGE-SOURCE: CL 18789050 in //UE5/Release-5.0/... via CL 18789065 via CL 18789317
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18789795 by catalin dragoiu in ue5-main branch]
2022-01-31 10:21:49 -05:00
johan berg
95d2ab8815 [Insights] Fix parsing of environment variables for SymsLibResolver.
Previously only enviroment variables paths that contained ';' very correctly parsed. And even in that case the last paths was discarded.

#rb none
#jira UE-140001
#preflight 61eec605aa3f15faa57afefe

#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 18709084 in //UE5/Release-5.0/... via CL 18709097 via CL 18709326
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18709377 by johan berg in ue5-main branch]
2022-01-24 11:00:49 -05:00
ionut matasaru
75db73bfed [Insights] Fixed group name for "unnamed" threads.
#rb Catalin.Dragoiu
#jira UE-135467
#preflight 61e1b248076be0fc4e177b1c

#ROBOMERGE-AUTHOR: ionut.matasaru
#ROBOMERGE-SOURCE: CL 18631320 in //UE5/Release-5.0/... via CL 18631655 via CL 18631678
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18636668 by ionut matasaru in ue5-main branch]
2022-01-17 23:58:56 -05:00
johan berg
5eacd9893e [Insights] Make specific no callstack entry
Allows us to display allocations that don't have a callstack (e.g. from TraceMalloc) compared to callstack that have a callstack id, but we couldn't find the id.
#preflight 61e01fc3250b9537f7708c1d

#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 18595807 in //UE5/Release-5.0/... via CL 18595813 via CL 18595822
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18596763 by johan berg in ue5-main branch]
2022-01-13 10:13:55 -05:00
catalin dragoiu
6b68309915 [Insights] Fix crash in TaskProfiler when enabling the Task channel late.
#jira UE-138382
#rb Andriy.Tylychko Ionut.Matasaru
#preflight 61d71e9b4c252480ca2af115

#ROBOMERGE-AUTHOR: catalin.dragoiu
#ROBOMERGE-SOURCE: CL 18541069 in //UE5/Release-5.0/... via CL 18541071
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18541077 by catalin dragoiu in ue5-release-engine-test branch]
2022-01-07 05:42:06 -05:00
catalin dragoiu
fe24a28f7d Fix non unity compile errors
#rb trivial
#preflight 61d6c3cd932a02483cd0eac5

#ROBOMERGE-AUTHOR: catalin.dragoiu
#ROBOMERGE-SOURCE: CL 18529677 in //UE5/Release-5.0/... via CL 18529685
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18529688 by catalin dragoiu in ue5-release-engine-test branch]
2022-01-06 05:46:18 -05:00
johan berg
44f067c4b9 Fix Mac compile issues
#preflight 61d59fdb6511bc498e458743

#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 18517991 in //UE5/Release-5.0/... via CL 18517996
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18518005 by johan berg in ue5-release-engine-test branch]
2022-01-05 08:45:47 -05:00
johan berg
38a211f5ee Fix static code analysis error
#rb none
#preflight 61d59720d17842e547b53631

#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 18517856 in //UE5/Release-5.0/... via CL 18517868
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18517877 by johan berg in ue5-release-engine-test branch]
2022-01-05 08:18:01 -05:00
johan berg
77c610a6b8 [Insights] Add symbol search paths and reload module triggers
* Implements functionality to search for symbols in a stack of search directories. Search directories can be added from configuration, environment variables or explicitly specified by user.
 * Exposes module information and ability to enumerate detected modules.
 * Adds functionality to attempt loading symbols for a module in a specific directory.

#rb ionut.matasaru, martins.mozeiko
#jira UE-137221
#preflight 61d56928932a02483cc346f7
#preflight 61d571e0ec35d1b940dad984

#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 18517208 in //UE5/Release-5.0/... via CL 18517221
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18517223 by johan berg in ue5-release-engine-test branch]
2022-01-05 05:39:03 -05:00
catalin dragoiu
bcd66fd2c3 [Insights] Implement Find functionality for CoreTimingTracks
#rb Ionut.Matasaru
#preflight 61d45790c73b7e46b25c0e11
#jira UE-130996

#ROBOMERGE-AUTHOR: catalin.dragoiu
#ROBOMERGE-SOURCE: CL 18517034 in //UE5/Release-5.0/... via CL 18517051
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18517052 by catalin dragoiu in ue5-release-engine-test branch]
2022-01-05 05:00:24 -05:00