---
version: "v1.1.2"
category: "experiments-added"
---

#### `profiling` experiment adds pprof collection for Terragrunt runs

Enable the new [`profiling`](/reference/experiments/active#profiling) experiment to collect CPU profiles, memory (heap) profiles, and goroutine profiles (stack traces of all goroutines) using CLI flags. Profiling is intended for debugging the performance of Terragrunt itself, and for exploring ways to optimize Terragrunt as an application; it will not help with improving the performance of the infrastructure Terragrunt manages.

Example:

```bash
terragrunt --experiment=profiling --profile-cpu cpu.prof --profile-mem mem.prof --profile-goroutine goroutine.prof run -- plan
```

Use `--profile-dir` to collect all profiles into a single directory with conventional names (`terragrunt_cpu.prof`, `terragrunt_mem.prof`, `terragrunt_goroutine.prof`):

```bash
terragrunt --experiment=profiling --profile-dir /tmp/profiles run --all -- plan
```

The same behavior is available via environment variables when the `profiling` experiment is enabled:

- `TG_PROFILE_CPU`
- `TG_PROFILE_MEM`
- `TG_PROFILE_GOROUTINE`
- `TG_PROFILE_DIR`

When using `--profile-dir` or `TG_PROFILE_DIR`, Terragrunt also sets `TOFU_CPU_PROFILE` for each unit so downstream OpenTofu processes (OpenTofu 1.11 or later) write their own CPU profiles into unit-specific subdirectories. An explicitly set `TOFU_CPU_PROFILE` is never overridden.
