---
title: "Profiling Metrics"
description: "Learn about the measurements taken by the Sentry profiler that help us contextualize the work your mobile app does and detect possible issues impacting performance."
url: https://docs.sentry.io/product/explore/profiling/mobile-app-profiling/metrics/
---

# Profiling Metrics

The Sentry profiler records several system measurements to help analyze the backtraces it gathers. Some, like CPU and heap usage, are taken on a regular sampling interval using functions from `mach/mach.h`, albeit with a lower frequency than backtrace sampling. Others, like GPU information, are taken from `CADisplayLink` callback invocations, as they're received.

## [CPU Usage](https://docs.sentry.io/product/explore/profiling/mobile-app-profiling/metrics.md#cpu-usage)

The amount of CPU used by the app process, (as a scaled percentage of total CPU capacity, which varies depending on the number of cores), is measured every 100 ms. The value is calculated using `thread_info` with `THREAD_BASIC_INFO`, which returns a CPU usage value per thread and sums up the values for all current threads.

## [Heap Usage](https://docs.sentry.io/product/explore/profiling/mobile-app-profiling/metrics.md#heap-usage)

The amount of heap memory used by the application is recorded every 100 ms using `task_info` with `TASK_VM_INFO`.

## [GPU Information](https://docs.sentry.io/product/explore/profiling/mobile-app-profiling/metrics.md#gpu-information)

In addition to counting the number of [slow and frozen UI frame renders](https://docs.sentry.io/product/insights/mobile/mobile-vitals.md#slow-and-frozen-frames) for Mobile Vitals Insights, Sentry now records the timestamp for every frame and overlays it on top of profiling flame charts:

The profiler records the current frame rate upon start, and then any time it changes, (for example if a user puts their device into low-power mode).

## [Energy Usage](https://docs.sentry.io/product/explore/profiling/mobile-app-profiling/metrics.md#energy-usage)

The amount of energy expended by CPU work allocated to the app process is calculated every 100 ms using `task_info` with `TASK_POWER_INFO_V2`.
