GameBench collects performance metrics at configurable intervals. This section details the available metrics and precisely what they mean on each platform.
The fundamental performance metric. GameBench tracks FPS by monitoring the production and presentation of framebuffers.
Android: Calculated by reading
/proc/self/stat, adding the
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.
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