# Profiling

Measuring where a program actually spends its time, before deciding what to optimize.

Source: https://university.eugo.io/glossary/profiling

---

The step most often skipped. Distributing an I/O-bound workload multiplies the waiting, which profiling would have revealed in advance.

## Related terms

- [I/O-bound](https://university.eugo.io/glossary/io-bound) — A workload whose runtime is limited by reading and writing data rather than by calculation. Adding workers to an I/O-bound job adds waiting, not throughput.
- [Compute-bound](https://university.eugo.io/glossary/compute-bound) — A workload whose runtime is limited by how fast calculations can be performed. Adding workers to a compute-bound job generally makes it finish sooner.
- [Speedup](https://university.eugo.io/glossary/speedup) — How many times faster a distributed run is than the same work on one worker. Ideal speedup equals worker count; real speedup falls short of it.

