Version: Unity 6.3 LTS (6000.3)
Language : English
Read frame timing data with ProfilerRecorder
Rendering Profiler module reference

Frame timing API counter reference

The following table describes the purpose of the counters that the FrameTiming API provides.

FrameTiming API field Profiler counterPlaced in code with the ProfilerCounter API to track metrics, such as the number of enemies spawned in your game. More info
See in Glossary
Description
cpuFrameTime CPU Total Frame Time The total CPU frame time, in nanoseconds. Unity calculates this as the time between the ends of two frames, including any overheads or time spent waiting between frames.
cpuMainThreadFrameTime CPU Main Thread Frame Time Active main thread work time in nanoseconds. This is the PlayerLoop time without the time the main thread was waiting for the VSync or render thread to finish its work, calculated as follows:

cpuMainThreadFrameTime = PlayerLoop - GfxDevice.WaitForRenderThread - Gfx.WaitForPresentOnGfxThread - WaitForTargetFPS
cpuMainThreadPresentWaitTime N/A The CPU time in nanoseconds spent waiting for the frame presentation or VSync during the frame, calculated as follows:

cpuMainThreadPresentWaitTime = Gfx.WaitForPresentOnGfxThread + WaitForTargetFPS.
cpuRenderThreadFrameTime CPU Render Thread Frame Time Active Render Thread work time in nanoseconds without Unity calling the Present() function, calculated as follows:

cpuRenderThreadFrameTime = RenderLoop - Gfx.PresentFrame.
gpuFrameTime GPU Frame Time The time difference in nanoseconds between the beginning and the end of the GPU rendering a single frame.

The following diagram visualizes the relationships between FrameTiming and the Profiler frame data.

Diagram showing relation of FrameTiming API to Profiler data
Diagram showing relation of FrameTiming API to Profiler data

Additional resources

Read frame timing data with ProfilerRecorder
Rendering Profiler module reference