GameBench collects performance metrics at configurable intervals. This section details the available metrics and precisely what they mean on each platform.

Frames-per-second (FPS)

The fundamental performance metric. GameBench tracks FPS by monitoring the production and presentation of framebuffers.

CPU utilization % (CPU)

Android: Calculated by reading /proc/self/stat, adding the utime and stime fields together, dividing by the maximum that that number could be (i.e. Linux ‘jiffies’ per second), and finally dividing by the number of CPU cores. This tallies with the same measurement performed by Android Studio.

iOS: Calculated by using the low-level thread_info() API. Unlike Android the result is not divided by the number of cores, i.e. a reading of 200% means 2 cores were working flat-out. This is so it agrees with the same measurement as performed by XCode Instruments.

GPU utilization % (GPU)


Memory usage (MEM)

Android: We use Linux’s Proportional Set Size (PSS), which is defined as the private memory of the process plus the proportion of shared memory with one or more other processes.

iOS: We use the phys_footprint field of struct task_vm_info_data_t obtained with the low-level task_info() API.







Last updated on