Instrumentation (computer programming): Difference between revisions
Opencooper (talk | contribs) m dash to endash (MOS:ENDASH) |
Crasshopper (talk | contribs) m Omit needless words. |
||
Line 1: | Line 1: | ||
{{more footnotes|date=December 2013}} |
{{more footnotes|date=December 2013}} |
||
In the context of [[computer programming]], '''instrumentation''' refers to the measure of a product's performance, to diagnose errors, and to write [[Tracing (software)|trace]] information.<ref>[http://pic.dhe.ibm.com/infocenter/rtrthelp/v8r0m0/index.jsp?topic=%2Fcom.ibm.rational.testrt.doc%2Ftopics%2Fcinstruovw.html Source Code Instrumentation Overview at IBM website]</ref> |
In the context of [[computer programming]], '''instrumentation''' refers to the measure of a product's performance, to diagnose errors, and to write [[Tracing (software)|trace]] information.<ref>[http://pic.dhe.ibm.com/infocenter/rtrthelp/v8r0m0/index.jsp?topic=%2Fcom.ibm.rational.testrt.doc%2Ftopics%2Fcinstruovw.html Source Code Instrumentation Overview at IBM website]</ref> Instrumentation can be of two types: source instrumentation and binary instrumentation. |
||
== Output == |
== Output == |
||
In programming, instrumentation means |
In programming, instrumentation means:<ref>{{cite web|url=http://www.drdobbs.com/architecture-and-design/commenting-testing-and-instrumenting-cod/229300224|title=Commenting, Testing, and Instrumenting Code|date=January 3, 2011|accessdate=January 29, 2014}}</ref> |
||
* [[Profiling (computer programming)|Profiling]] |
* [[Profiling (computer programming)|Profiling]]: measuring dynamic program behaviors during a training run with a representative input. This is useful for properties of a program that cannot be [[static program analysis|analyzed statically]] with sufficient precision, such as [[alias analysis]]. |
||
* Function timers. |
|||
* Performance counters – components that allow the tracking of the performance of the application. |
|||
* Logging major events. |
|||
* [[Computer data logging]] – components that allow the logging and tracking of major events in the execution of the application. |
|||
== Limitations == |
== Limitations == |
Revision as of 09:15, 30 December 2020
This article includes a list of general references, but it lacks sufficient corresponding inline citations. (December 2013) |
In the context of computer programming, instrumentation refers to the measure of a product's performance, to diagnose errors, and to write trace information.[1] Instrumentation can be of two types: source instrumentation and binary instrumentation.
Output
In programming, instrumentation means:[2]
- 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.
- Function timers.
- Logging major events.
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 – 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 – 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
- ^ Source Code Instrumentation Overview at IBM website
- ^ "Commenting, Testing, and Instrumenting Code". January 3, 2011. Retrieved January 29, 2014.
- Introduction to Instrumentation and Tracing: Microsoft Developer Network
- Apple Developer Tools: Introduction to Instruments
- SystemTap provides free software (GPL) infrastructure to simplify the gathering of information about the running Linux system.
- cwrap Auto wrap C and C++ functions with instrumentation.