# `Beamchmark.Suite.CPU.CpuTask`
[🔗](https://github.com/membraneframework/beamchmark/blob/v1.4.2/lib/beamchmark/suite/cpu/cpu_task.ex#L1)

This module contains the CPU benchmarking task.
Measurements are performed using [`:cpu_sup.util/1`](https://www.erlang.org/doc/man/cpu_sup.html)
Currently (according to docs), as busy processor states we identify:
  - user
  - nice_user (low priority use mode)
  - kernel

# `child_spec`

Returns a specification to start this module under a supervisor.

`arg` is passed as the argument to `Task.start_link/1` in the `:start` field
of the spec.

For more information, see the `Supervisor` module,
the `Supervisor.child_spec/2` function and the `t:Supervisor.child_spec/0` type.

# `start_link`

```elixir
@spec start_link(cpu_interval :: pos_integer(), duration :: pos_integer()) :: Task.t()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
