# Frame timing API counter reference

> Reference for the FrameTiming API and its corresponding Profiler counters.

The following table describes the purpose of the counters that [the `FrameTiming` API](/engine/6000.0/script-reference/unityengine/frametiming.md) provides.

| **FrameTiming API field**                                                                                                 | **Profiler counter**             | **Description**                                                                                                                                                                                                                                                                                                             |
| ------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`cpuFrameTime`](/engine/6000.0/script-reference/unityengine/frametiming/cpuframetime.md)                                 | **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`](/engine/6000.0/script-reference/unityengine/frametiming/cpumainthreadframetime.md)             | **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`](/engine/6000.0/script-reference/unityengine/frametiming/cpumainthreadpresentwaittime.md) | 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`](/engine/6000.0/script-reference/unityengine/frametiming/cpurenderthreadframetime.md)         | **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`](/engine/6000.0/script-reference/unityengine/frametiming/gpuframetime.md)                                 | **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](/engine/6000.0/manual/analysis/profiler.md) frame data.


**Diagram showing relation of FrameTiming API to Profiler data:**
![](/api/media?file=/engine/6000.0/media/images/frame-timing-manager-times.drawio.svg)

## Additional resources

* [Get frame timing data](/engine/6000.0/manual/analysis/graphics-performance-profiling/profile-rendering/frame-timing-manager/get-timing-data.md)
* [Record frame timing data](/engine/6000.0/manual/analysis/graphics-performance-profiling/profile-rendering/frame-timing-manager/record-timing-data.md)
