Content deleted Content added
Adding local short description: "Modification of software to allow for analysis", overriding Wikidata description "enabling of code tracing, debugging and profiling in computer programming" |
Add reference for instrumentation definition, add JVMTI as example, and more details for instrumentation overhead |
||
Line 1:
{{Short description|Modification of software to allow for analysis}}
{{more footnotes|date=December 2013}}
In [[computer programming]], '''instrumentation''' is the act of modifying software so that [[analysis]] can be performed on it.<ref>A. Sabetta and H. Koziolek, “Measuring Performance Metrics: Techniques and Tools,” in Dependability metrics. Springer, 2008, pp. 226–232.</ref>
Generally, instrumentation either modifies [[source code]] or
Instrumentation enables [[profiling (computer programming)|profiling]]: <ref>{{cite web|url=http://www.drdobbs.com/architecture-and-design/commenting-testing-and-instrumenting-cod/229300224|title=Commenting, Testing, and Instrumenting Code|work=Dr. Dobb's |date=January 3, 2011|accessdate=January 29, 2014}}</ref>
Line 16:
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 limit the application of instrumentation to debugging contexts. The instrumentation overhead differs depending on the used instrumentation technology.<ref>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).</ref>
==See also==
|