Commit Graph

9 Commits

Author SHA1 Message Date
ionut matasaru
15126612ef [Insights] Fixed unsafe type cast warnings in TraceAnalysis module.
#rb Martin.Ridgers
#preflight 633583adf418a1071a57fc98

[CL 22271566 by ionut matasaru in ue5-main branch]
2022-09-30 11:28:14 -04:00
Francis Hurteau
d6e85a7b90 Trace: Create interfaces in TraceServices for external Analysis
### Features
This change sets up new interface APIs and moves concrete APIs into those interfaces to allow for providers to be implemented external to TraceServices. These Provider interfaces are given to new construction APIs in ExternalAnalysis.h that construct the appropriate Analyzer with the specified Providers.

This change creates a new and standalone Analyzer for Bookmarks spinning logic directly out of the MiscAnalyzer. This is necessary to prevent bookmark processing necessitating additional Providers that the client may not want to implement if they just want access to Bookmark data.

SummarizeTraceCommandlet implements these provider interfaces and migrates it's state tracking implementation from raw event decoding to simply forwarding on the calls from the Provider interfaces. The internal SummarizeTraceCommandlet Analyzer API in the Commandlet are mostly left unchanged as a middleman between Trace and the Commandlet existed prior to this change.

### Implementation
Since Providers can now implement multiple interfaces, we need to upcast them to the appropriate interface at registration time. This in turn requires moving the Provider memory model into IAnalysisSession to TSharedPtr/MakeShared to prevent double deletes at destruction time.

### Performance
Opening a large trace in Insights yields this performance change:
Pre: Analyzed in 8.29s at 122.8X speed.
Post: Analyzed in 8.36s at 121.8X speed.
Commandlet runtime is comparable (I didn't measure, less sensitive than Insights), and memory pressure remains more or less steady in the low teens of gigabytes.

### Testing
A/B testing and spot checking the data shows that nearly all data is either more correct or withing many-decimal-places rounding error.
UnrealInsights and Editor builds without error in NoPCH, DisableUnity configurations

### Hashtags
#rb ionut.matasaru
#jira UE-120810
#preflight 62bc9d717f31fc8c31fd6d18
#robomerge EngineMerge

[CL 20893535 by Francis Hurteau in ue5-main branch]
2022-06-30 09:17:47 -04:00
Stefan Boberg
55a8b15f1f Copying //UE4/Dev-Core to Main (//UE4/Main)
#rb none

[CL 11258477 by Stefan Boberg in Main branch]
2020-02-05 14:26:36 -05:00
Martin Ridgers
09038e6c3b Removed hack to make live tracing update correctly. No longer relevant as we are using a different store-recorder backend.
#rb trivial
#rnx

[CL 11153442 by Martin Ridgers in Dev-Core branch]
2020-01-29 07:14:09 -05:00
Martin Ridgers
122a6f01ae Fixed a nopch-nounity error.
#rb trivial
#rnx

[CL 11063078 by Martin Ridgers in Dev-Core branch]
2020-01-20 07:55:46 -05:00
Martin Ridgers
a7f6dcde38 Always consider traces to be live.
#rb trivial
#rnx

[CL 11062958 by Martin Ridgers in Dev-Core branch]
2020-01-20 06:49:55 -05:00
ryan durand
471d972e62 Updating copyright for Engine Developer.
#rnx
#rb none


#ROBOMERGE-SOURCE: CL 10869240 via CL 10869516 via CL 10869902
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870584 by ryan durand in Main branch]
2019-12-26 15:32:37 -05:00
Stefan Boberg
d2f9a61b06 Copy-up from Dev-Core
#rb none

[CL 10419044 by Stefan Boberg in Main branch]
2019-11-25 12:03:09 -05:00
Stefan Boberg
8607ecb30d Copying //UE4/Dev-Core to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 6815521 by Stefan Boberg in Main branch]
2019-06-03 15:32:00 -04:00