📑 Table of Contents

In computer programming, instrumentation is the act of modifying software so that analysis can be performed on it.[1]

Generally, instrumentation either modifies source code or binary code. Execution environments like the JVM provide separate interfaces to add instrumentation to program executions, such as the JVMTI, which enables instrumentation during program start.

Instrumentation enables profiling[2]: 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 can include:

  • Logging events such as failures and operation start and end[3]
  • Measuring and logging the duration of operations

Limitations

edit

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.

Instrumentation increases the execution time of a program. In some contexts, this increase might be dramatic and hence limit the application of instrumentation to debugging contexts. The instrumentation overhead differs depending on the used instrumentation technology.[4]

See also

edit
  • 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.
  • Software performance analysis – techniques to monitor code performance, including instrumentation.
  • Hardware performance counter
  • 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.
  • Application Response Measurement – standardized instrumentation API for C and Java.
  • Dynamic recompilation – a feature of some emulators and virtual machines where the system may recompile some part of a program during execution.

References

edit
  1. ^ A. Sabetta and H. Koziolek, “Measuring Performance Metrics: Techniques and Tools,” in Dependability metrics. Springer, 2008, pp. 226–232.
  2. ^ "Commenting, Testing, and Instrumenting Code". Dr. Dobb's. January 3, 2011. Retrieved January 29, 2014.
  3. ^ Source Code Instrumentation Overview at IBM website
  4. ^ Reichelt, D. G., Bulej, L., Jung, R., & van Hoorn, A. (2024, May). Overhead Comparison of Instrumentation Frameworks. In Companion of the 15th ACM/SPEC International Conference on Performance Engineering (pp. 249-256).


📚 Artikel Terkait di Wikipedia

Instrument

Look up instrument in Wiktionary, the free dictionary. Instrument may refer to: Flight instruments, the devices used to measure the speed, altitude, and

Musical instrument

instrument is a device created or adapted to make musical sounds. In principle, any object that produces sound can be considered a musical instrument—it

String instrument

In musical instrument classification, string instruments, or chordophones, are musical instruments that produce sound from vibrating strings when a performer

Instrument rating

Instrument rating refers to the qualifications that a pilot must have in order to fly under instrument flight rules (IFR). It requires specific training

Legal instrument

Legal instrument is a legal term of art that is used for any formally executed written document that can be formally attributed to its author, records

Runway

markings, designators, and centerlines. Additionally, they do not provide an instrument-based landing procedure; pilots must be able to see the runway to use

Navigational instrument

Navigational instruments are instruments used by nautical navigators and pilots as tools of their trade. The purpose of navigation is to ascertain the

Percussion instrument

A percussion instrument is a musical instrument that is sounded by being struck or scraped by a beater including attached or enclosed beaters or rattles