This is Part 1 of the Fast Profiling series (at least I hope to write a few).

TLDR: use stat unit, for more information, use stat detailed.

What is Fast Profiling?

I have come up with the term while preparing for the Tech Art bootcamp organised by Into Games; it is an unofficial term. Fast Profiling is the use of the native Unreal Engine’s tools that provide performance results instantly, at a first glance.

Stat Commands

To profile their Unreal Engine (UE) projects, developers can enter stat commands into the console while running their game in Play In Editor (PIE) mode. - Epic Games.

There are hundreds of them, and from my experience, you usually need a select few. This doc will highlight the ones I think are crucial to know, but won’t include any feature-specific stat commands.

Stat FPS; Frames Per Second VS Frametime

Super basic command, stat FPS, displays Frames Per Second and Frametime only.

image.png

Between the two, Frametime is measured in milliseconds and is more commonly used when talking about performance or costs of particular features because it is linear: if there is a drop from 10 ms to 9 ms, then the improvement is 1 ms, while 110 fps to 100 fps is not the same as 60 fps to 50 fps.

However, there is a direct correlation between FPS to Frametime: FPS are nothing but the inverted values of the respective frametimes, so high frametimes mean low FPS while low frametimes mean high FPS. And the formula to calculate either is:

FPS = 1000 / frametimes

Frametimes = 1000 / FPS

In Unreal Engine, all profilers use Frametime to display the costs.

Stat Unit

The most popular command, stat unit, displays everything you need for fast profiling: frame, game thread, render thread, RHI thread and GPU costs. From the official doc:

image.png

One of the newer additions to the stat unit in UE 5.6 is the display of RenderRes(olution) since the render size of the frame greatly affects performance.