Instrumentation enables
profiling: [1]
measuring dynamic behavior during a test run. This is useful for properties of a program that cannot be
analyzed statically with sufficient precision, such as
performance and
alias analysis.
Instrumentation is limited by execution coverage. If the program never reaches a particular point of execution, then instrumentation at that point collects no data. For instance, if a word processor application is instrumented, but the user never activates the print feature, then the instrumentation can say nothing about the routines which are used exclusively by the printing feature.
Some types of instrumentation may cause a dramatic increase in execution time. This can limit the application of instrumentation to debugging contexts.
See also
Hooking – range of techniques used to alter or augment the behavior of an operating system, of applications, or of other software components by intercepting function calls or messages or events passed between software components.
Instruction set simulator – simulation of all instructions at machine code level to provide instrumentation
Runtime intelligence – technologies,
managed services and practices for the collection, integration, analysis, and presentation of application usage levels, patterns, and practices.
DTrace – A comprehensive dynamic tracing framework for troubleshooting kernel and application problems on production systems in real time, implemented in
Solaris,
macOS,
FreeBSD, and many other platforms and products.
Java Management Extensions (JMX) – Java technology for managing and monitoring applications, system objects, devices (such as printers), and service-oriented networks.