A developer-centric toolkit module for Android to facilitate in-depth profiling and benchmarking.
This module uses the Unity Installer template, which means that it can be installed
irrespective of the root solution you are using — it will install as a Magisk module
when possible, and fall back to installing to /system
directly if that isn't possible.
CPU architectures other than AArch64 are NOT supported! There are no plans to support them at this time.
Command-line utilities:
- Dhrystone (
dhrystone
): A simple CPU integer performance benchmark typically used for calculating CPU capacities for an EAS energy model - Flexible I/O Tester (
fio
): A flexible generic I/O tester that can simulate a variety of configurable workloads, created by Linux block subsystem maintainer Jens Axboe - Hackbench (
hackbench
): A scheduler wakeup latency and pipe benchmark - IOzone (
iozone
): A general filesystem and I/O benchmark - memcpy (
memcpy
): A simple memory bandwidth tester that uses thememcpy(3)
function from libc - perf (
perf
): The Linux kernel's native profiling tool, which also offers some built-in microbenchmarks accessible viaperf bench
(kernel 4.9 version) - rt-app (
rt-app
): A flexible real-time application simulator designed to replicate typical mobile workloads in a reproducible manner - schbench (
schbench
): A minimal and detailed scheduler wakeup latency benchmark by Facebook - SLABtop (
slabtop
): A tool to show kernel SLAB memory usage details (requiresCONFIG_SLUB_DEBUG=y
in kernel) - stress-ng (
stress-ng
): A program to stress-test various hardware and kernel subsystems - sysbench (
sysbench
): A scriptable database and system performance benchmark with several built-in scripts - callbench (
callbench
): A program to measure the speed of simple time syscalls and vDSO calls, as well as basic file I/O using bothmmap(2)
andread(2)
- GTcycles (
gtcycles
): A tool to measure the frequency of the CPU's generic timer - cyclictest (
cyclictest
): A program to measure timer expiration delay, useful for real-time latency testing
Android apps:
- UIBench: Google's app (from AOSP) for testing various mobile workloads and UI rendering tasks
- TouchLatency: Google's app (from AOSP) for testing touch latency as well as frame rendering times and missed frames
All native executables have been stripped of symbols and DWARF debug info to reduce size.
- ARM for creating LISA and Workload Automation, from which many of my executables were sourced
- celtare21 for the IOzone executable
- Zackptg5 for the Unity Installer template
- The creators of all the programs contained in this module