Performance Profiling
There are multiple main ways of profiling, each with their scope and usefulness:
- instrumentation profiling times the program as a whole or by parts and count specific events you are interested in.
- sampling profiling monitor various hardware events such as branch mispredictions or cache misses
- Program simulation goes down to individual cycle level and simulate the execution of a snippet of machine code