Profiling
Profiling is the process of determining how a program is using the resources that it is consuming.
Resource that can be Profiled
Resources consumption that can be analyzed during profiling include:
- Time (both clock time (total real time, user time, and the amount of time the kernel spent on behalf of the program)
- Memory
- Temporary storage
- Energy (this is a relatively new area of profiling)
Profiling Granularity
Most profiling systems determine resource usage on a per-function basis.