In the context of
computer programming
Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as anal ...
, instrumentation refers to the measure of a product's performance, in order to diagnose errors and to write
trace
Trace may refer to:
Arts and entertainment Music
* ''Trace'' (Son Volt album), 1995
* ''Trace'' (Died Pretty album), 1993
* Trace (band), a Dutch progressive rock band
* ''The Trace'' (album)
Other uses in arts and entertainment
* ''Trace'' ...
information. Instrumentation can be of two types: source instrumentation and binary instrumentation.
Output
In programming, instrumentation means:
*
Profiling: measuring dynamic program behaviors during a training run with a representative input. This is useful for properties of a program that cannot be
analyzed statically with sufficient precision, such as
alias analysis
Alias may refer to:
* Pseudonym
* Pen name
* Nickname
Arts and entertainment Film and television
* ''Alias'' (2013 film), a 2013 Canadian documentary film
* ''Alias'' (TV series), an American action thriller series 2001–2006
* ''Alias the J ...
.
* Inserting timers into functions.
* Logging major events such as crashes.
Limitations
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 may limit the application of instrumentation to debugging contexts.
See also
*
Hooking
In computer programming, the term hooking covers a range of techniques used to alter or augment the behaviour of an operating system, of applications, or of other software components by intercepting function calls or messages or events passed ...
– range of techniques used to alter or augment the behavior of an operating system, of applications, or of other software components either by intercepting function calls or messages or events passed between software components
*
Instruction set simulator
An instruction set simulator (ISS) is a simulation model, usually coded in a high-level programming language, which mimics the behavior of a mainframe or microprocessor by "reading" instructions and maintaining internal variables which represent t ...
– 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
In software engineering, profiling ("program profiling", "software profiling") is a form of dynamic program analysis that measures, for example, the space (memory) or time complexity of a program, the usage of particular instructions, or the f ...
– techniques to monitor code performance, including instrumentation
*
Hardware performance counter In computers, hardware performance counters (HPC), or hardware counters are a set of special-purpose Processor register, registers built into modern microprocessors to store the counts of hardware-related activities within computer systems. Advanced ...
*
DTrace
DTrace is a comprehensive dynamic tracing framework originally created by Sun Microsystems for troubleshooting kernel and application problems on production systems in real time.
Originally developed for Solaris, it has since been released und ...
– A comprehensive dynamic tracing framework for troubleshooting kernel and application problems on production systems in real time, implemented in
Solaris
Solaris may refer to:
Arts and entertainment Literature, television and film
* ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem
** ''Solaris'' (1968 film), directed by Boris Nirenburg
** ''Solaris'' (1972 film), directed by ...
,
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
,
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
Application Response Measurement (ARM) is an open standard published by the Open Group for monitoring and diagnosing performance bottlenecks within complex enterprise applications that use loosely-coupled designs or service-oriented architectures ...
– standardized instrumentation
API
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
for
C and
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
*
Dynamic recompilation
In computer science, dynamic recompilation is a feature of some emulators and virtual machines, where the system may recompile some part of a program during execution. By compiling during execution, the system can tailor the generated code t ...
– a feature of some emulators and virtual machines where the system may recompile some part of a program during execution
References
Introduction to Instrumentation and Tracing: Microsoft Developer NetworkSystemTapprovides free software (GPL) infrastructure to simplify the gathering of information about the running Linux system.
cwrapAuto wrap C and C++ functions with instrumentation.
Software optimization
System administration
Management systems
Debugging
{{Comp-sci-stub