📈Profiling
Last updated
Last updated
The performance estimates tool is designed to give rough performance estimates in PIE for streaming and native clients. The tool takes your current frame time and uses benchmark data to estimate what the expected performance is if the current level were to be played on GFN, Ubitus and native min spec hardware. For more accurate performance metrics, a full scale test will be necessary.
The performance estimates tool is on by default in editor and can be expanded using F7
. It can also be manually turned on and off by using the following console command:
M2PerformanceEstimates.ToggleHUD
To expand the performance estimates, use the following command:
M2PerformanceEstimates.ToggleExpandedHUD
The editor scalability settings can impact the quality of estimates if they are too high for your hardware and VRAM is exhausted. Your editor scalability settings can be found here:
For more accurate estimations, turn off Monitor Editor Performance
Currently, the tool only estimates performance for our most commonly used streaming instances and the lowest minimum hardware.
More instances will be added in the future.
The minimum hardware requirements can be found here.
The estimates are calculated by taking the current frame time in PIE and scaling this according to the current scalability settings using CPU and GPU benchmark results for the local machine and the target hardware. A crowd performance overhead is applied based on the scalability setting and the target scale for each hardware.
Estimates in PIE are likely to be lower than packaged builds’ performance, particularly with Low scalability settings. This is due to the editor overhead and less optimisations. This should improve in the future.
There is one player in the level
The crowd performance is based off of the default M2Unreal crowd setup
The crowd performance data is based off of the Full
bot behaviour
The crowd is based off of modular characters
This will change to account for the transition to MML avatars
The data used is based off of Skypark_P
Features that are not currently active will not be reflected in the estimates
The tool does scale if the local machine is using scalability level Cinematic but it does not give predictions for this level as it is not recommended.
This is an optional step if you want more accurate estimates based off of custom data.
The data used to calculate estimates is spread across 3 data tables:
DT_PerformanceEstimatesHardwareData
- native client performance data
DT_PerformanceEstimatesMinSpecData
- native min spec hardware performance
DT_PerformanceEstimatesStreamingData
- streaming hardware performance
This is currently configured using Skypark_P
but the data can be changed in projects instead of the default values.
Here is the data required for each of these tables:
Instance | Max CCU | Scalability settings |
---|---|---|
Value | Details |
---|---|
Value | Details |
---|---|
Value | Details |
---|---|
GFN g6.full
15,000
Custom profile (roughly High/Epic)
Ubitus A10
15,000
Custom profile (roughly High/Epic)
Native Min
500
Customisable (default Low)
Native Low
1,000
Customisable (default Medium)
CPU Benchmark
Can be gathered using the console command M2PerformanceEstimates.DumpScalabilityBenchmarks
GPU Benchmark
Can be gathered using the console command M2PerformanceEstimates.DumpScalabilityBenchmarks
Scalability Level
The level that is set whilst gathering data
Frame Time
Frame time recorded
Instance name
How this will be labelled
CPU Benchmark
Can be gathered using the console command M2PerformanceEstimates.DumpScalabilityBenchmarks
GPU Benchmark
Can be gathered using the console command M2PerformanceEstimates.DumpScalabilityBenchmarks
Target Scale
Target CCU
Target Scalability Level
The target scalability level that the hardware uses.
Max fps
The value fps is capped at
Low Frame Time
The frame time at Low scalability level with one player
Medium Frame Time
The frame time at Medium scalability level with one player
High Frame Time
The frame time at High scalability level with one player
Epic Frame Time
The frame time at Epic scalability level with one player
Cine Frame Time
The frame time at Cinematic scalability level with one player
Target Scale Low Frame Time
The frame time at Low scalability level with the target scale
Target Scale Medium Frame Time
The frame time at Medium scalability level with the target scale
Target Scale High Frame Time
The frame time at High scalability level with the target scale
Target Scale Epic Frame Time
The frame time at Epic scalability level with the target scale
Target Scale Cine Frame Time
The frame time at Cinematic scalability with the target scale
Instance name
How this will be labelled
Streaming Service
Currently between GFN and Ubitus
CPU Benchmark
Can be gathered using the console command M2PerformanceEstimates.DumpScalabilityBenchmarks
GPU Benchmark
Can be gathered using the console command M2PerformanceEstimates.DumpScalabilityBenchmarks
Target Scale
Target CCU
Max fps
The value fps is capped at
Custom Frame Time
The frame time using the custom device profile settings with one player
Low Frame Time
The frame time at Low scalability level with one player
Medium Frame Time
The frame time at Medium scalability level with one player
High Frame Time
The frame time at High scalability level with one player
Epic Frame Time
The frame time at Epic scalability level with one player
Cine Frame Time
The frame time at Cinematic scalability level with one player
Target Scale Custom Frame Time
The frame time using the custom device profile settings with the target scale