2.1. Design aims of a profiler
As an important part of a programmer's artillery, a profiler should avoid
getting in the way of the human analyst. This leads to a number of design
parameters every profiler should aim towards :
- Unobtrusive
-
A profiler should not require a significant expenditure of
developer effort. The need for recompiles, preprocessors,
special modifications to the toolchain and the like should
be avoided, as they are inconvenient to the developer. An
ideal solution should allow profiling at will, without needing
such changes.
- Accurate
-
The data and reports generated by the profiler system should
aim towards accuracy. Inaccurate data runs the risk of mis-informing
the developer of the true situation, leading to wasted effort
and maintainability problems.
- Complete
-
Profilers should aim towards a complete data set. If a system
component or facet is not represented in the results, the
developer may not be aware of its impact on the system as a
whole.
- General
-
Profilers should avoid special-purpose techniques where possible.
- Fast
-
If the profiling method is too slow, it will impinge on the
developer's hacking time. Slow profilers often can't be
used in realistic environments, which makes collecting
meaningful data hazardous and prone to error.