# Nix Profiled With Tracy

## Profiling Idea

TODO:  explain

- Tracing thunk force operations.
- Eval is single-threaded and recursive: easy to build stack frames
  out of global eval state.
- Profiling infos are streamed to tracy server in that prototype.
- In previous iterations, we tried:
    - keep the profile in memory and save it to memory in a previous iteration. See [andir's version](https://git.alternativebit.fr/picnoir/Nix/src/branch/pic/tracy-on-top-of-andi) for code/more infos.
    - eBPF approach using USDTs (through bcc). We kept over-running the kernel/userspace ring buffer. See [here](https://git.alternativebit.fr/picnoir/Nix/src/branch/nin/usdt-rust) for more infos/code.

## TODOs

- Document everything.
- Rewrite autotools madness with somebody who actually know what they're doing.
