> This page is for version Release 3.0 (default).
> For other versions, use one of these documentation indexes:
> - Release 3.0 (default): https://docs.nvidia.com/isaaclab/3.0/llms.txt
> - Release 2.3: https://docs.nvidia.com/isaaclab/2.3/llms.txt
> - Release 2.2: https://docs.nvidia.com/isaaclab/2.2/llms.txt
> - Release 2.1: https://docs.nvidia.com/isaaclab/2.1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/isaaclab/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/isaaclab/_mcp/server.

# Benchmarking

Measure Isaac Lab workloads, compare changes, and catch performance
regressions with the benchmark CLI and Python API.

## Run a benchmark

Start with a runtime benchmark. This command measures 1000 environment steps
after 50 warm-up steps and prints a summary:

```bash
./isaaclab.sh benchmark runtime \
    --task Isaac-Cartpole-Direct \
    --num_envs 4096 \
    --warmup_steps 50 \
    --num_steps 1000 \
    --benchmark_formatter summary \
    --output_path ./benchmark_results \
    physics=isaacsim_physx
```

## Choose a workflow

| Question                                   | Tool            | Continue with                                                                   |
| ------------------------------------------ | --------------- | ------------------------------------------------------------------------------- |
| How fast does an environment step?         | `runtime`       | [Run benchmarks](/source/developer-tools/benchmarking/run_benchmarks)           |
| How fast does a trained policy run?        | `play`          | [Run benchmarks](/source/developer-tools/benchmarking/run_benchmarks)           |
| How fast does a policy train?              | `training`      | [Run benchmarks](/source/developer-tools/benchmarking/run_benchmarks)           |
| Where is startup time spent?               | `startup`       | [Run benchmarks](/source/developer-tools/benchmarking/run_benchmarks)           |
| How fast is one asset or sensor operation? | Micro-benchmark | [Write micro-benchmarks](/source/developer-tools/benchmarking/micro_benchmarks) |
| How do I automate or extend a benchmark?   | Python API      | [Use the benchmark API](/source/developer-tools/benchmarking/benchmark_api)     |

## From workload to comparison

```text
workload -> warm-up -> measurement -> summary/schema output -> comparison
```

Use the same workload, hardware, software revision, and measurement mode on
both sides of a comparison. The detailed guides define each timing boundary
and the provenance required for a valid result.

## Guides

Measure runtime, policy playback, training, or startup.

Isolate one asset method, data property, or sensor update.

Run workflows from Python or add a benchmark producer.