Arm Performix is a performance analysis toolkit for developers building on Arm-based infrastructure. It combines target-side data collection with guided analysis, function-level insights, and desktop visualisations.
Arm is gradually making source code for Arm Performix available to the public. Currently, you can build the Arm Performix CLI (apx) and use it to run the System Utilization recipe.
Note
This build process is fully supported on Linux and MacOS systems. For Windows users, we recommend using WSL.
Ensure the following are available on your system:
- C/C++ compiler toolchain
gitcurlunzip
For example, on Ubuntu or Debian:
sudo apt install build-essential git curl unzipOn macOS, install the Xcode Command Line Tools (curl and unzip are included
with the operating system):
xcode-select --installgit clone https://github.com/arm/performix.git
cd performixBootstrap the mise toolchain:
./bootstrapIf bootstrap configured mise for the first time, start a new shell.
Then use Task to install dependencies, generate sources, and build APX:
mise exec -- task installThis command assumes you accepted bootstrap's prompt to add mise to your
PATH. Otherwise, use the installed path directly:
"$HOME/.local/bin/mise" exec -- task installThe resulting CLI binary will be located at core/apap-cli/apx.
To run the System Utilization recipe, you will need an SSH-accessible Linux AArch64 or x86_64 target.
On a Linux AArch64 or x86_64 machine, you can use the local machine as the target with --target localhost.
Example commands using a local Linux machine:
cd core/apap-cli
./apx recipe ready system_utilization --system-wide --target localhost
./apx recipe run system_utilization --system-wide --timeout 30 --deploy-tools --target localhostExample commands using a remote target:
cd core/apap-cli
./apx target add user@hostname:22:/path/to/private_key --name linux-target --default
./apx target prepare
./apx recipe ready system_utilization --system-wide --target linux-target
./apx recipe run system_utilization --system-wide --timeout 30 --deploy-tools --target linux-target
