Structure of an analysis report

Every time you run a recipe using the skill, your AI assistant returns a structured report as the primary deliverable.

A report contains the following sections:

  • Bottleneck Summary: what dominates, and how confident the skill is
  • Key Metrics: the three to five most decision-relevant numbers
  • Hot Functions: a list of hot functions ranked by measured samples, each with a brief root-cause note
  • Recommended Actions: suggested fixes by file, function, and line
  • Ruled Out: hypotheses the data didn’t support, and why
  • Next Step: a single actionable instruction to run before re-profiling, such as the next recipe to try or one code change to make

If the data is noisy or insufficient, you’ll receive a recommendation to rerun the recipe.

Example Code Hotspots analysis report

The following is an example first Code Hotspots report for a compute-bound workload:

    

        
        
## Performix Analysis Report

**Recipe:** Code Hotspots
**Target:** `neoverse-box` (Arm Neoverse, 64 cores)
**Workload:** `/home/me/build/myapp --input /home/me/data/bench.dat`

### Bottleneck Summary

The escape-check loop in `escape_iterations` dominates CPU time (72% of samples),
driven by an avoidable `sqrt` call inside the tight iteration. High confidence:
a single function, stable across runs.

### Key Metrics

| Metric | Value | Assessment |
|--------|-------|------------|
| `escape_iterations` self % | 72.3% | Critical: single dominant hotspot |
| `sqrt` self % | 45.1% | Critical: unnecessary math |
| Total samples | 48,201 | Good: enough for reliable data |

### Hot Functions

| # | Function | Samples (%) | Root Cause |
|---|----------|-------------|------------|
| 1 | `escape_iterations` | 72.3% | `sqrt` in inner loop |
| 2 | `sqrt` | 45.1% | magnitude check in `escape_iterations` |

### Recommended Actions (priority order)

1. **Remove `sqrt`** in `mandelbrot.c:22`: replace `sqrt(zr2 + zi2) > 2.0` with
   `(zr2 + zi2) > 4.0`.

### Ruled Out

- Memory locality is not the issue: the hotspot is purely scalar floating-point
  compute.

### Next Step

Rebuild with the `sqrt` removal, re-run Code Hotspots, and confirm
`escape_iterations` falls under 30%.

    

The skill doesn’t let a single Code Hotspots run justify “this is as fast as it gets.” Code Hotspots shows where time goes, never why.

When you use the skill to run the Code Hotspots recipe, your AI assistant might propose a second pass to explain why the hotspot is hot. Let the assistant run that pass with a characterizing recipe, such as CPU Microarchitecture, Instruction Mix, or Memory Access, before deciding whether a cost is irreducible.

Drive improvements to your application

Improving your application using the arm-performix skill involves the following steps:

  1. Your AI assistant refers to the skill and establishes a baseline run.
  2. You make the suggested focused change and use your assistant to re-profile the code.
  3. The assistant refers to the skill and re-profiles with the same recipe and workload.
  4. The assistant reports a before-and-after comparison with a measurement.
  5. The assistant looks for the next bottleneck or summarizes the remaining trade-offs.

If you want to stop this flow, ask for the remaining opportunities. The skill is designed so that the AI assistant will hand you measured options with their trade-offs rather than declare the work finished on its own.

Note

If you are using the apx CLI, you can export a run or render results as JSON:

    

        
        
apx run export <run_id> <target_directory>
apx run render <run_id> --json

    

Use the Run ID from the analysis report, or run apx run list to find it. The <target_directory> is a directory on the host where Arm Performix writes the exported .zip file.

What you’ve learned

You’ve now learned how to read reports generated by your AI assistant when you use the arm-performix skill, and how to guide improvements with them.

You can use this measurement-first workflow with the arm-performix skill and an AI assistant to profile Arm Neoverse workloads, read the results, and make focused improvements.

Back
Next