Instrumentation (computer programming): Difference between revisions

Content deleted Content added
Josvebot (talk | contribs)
m Fixing WP:CHECKWIKI #16: unicode contol character (and other minor general edits caused by AWB), replaced: → (2)
a few grammar and punctuation tweaks
Line 1:
{{more footnotes|date=December 2013}}
In the context of [[computer programming]], '''instrumentation''' refers to an ability to monitor or measure the level 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> Programmers implement instrumentation in the form of code [[Instruction (computer science)|instructions]] that monitor specific components in a system (for example, instructions may output logging information to appear on the screen). When an application contains instrumentation code, it can be managed by using a management tool. Instrumentation is necessary to review the performance of the application. Instrumentation approaches can be of two types: Sourcesource instrumentation and binary instrumentation.
 
== Output ==
Line 7:
* Code [[Tracing (software)|tracing]] - receiving informative messages about the execution of an application at run time.
* [[Debugging]] and (structured) [[exception handling]] - tracking down and fixing programming errors in an application under development.<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]] - a means by which dynamic program behaviors can be measured during a training run with a representative input. This is useful for properties of a program whichthat cannot be [[static program analysis|analyzed statically]] with sufficient precision, such as [[alias analysis]].
* Performance counters - components that allow the tracking of the performance of the application.
* [[Computer data logging]] - components that allow the logging and tracking of major events in the execution of the application.
Line 18:
 
==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]]
Line 26:
* [[Java Management Extensions|''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 [[Application programming interface|API]] for [[C (programming language)|C]] and [[Java (programming language)|Java]]
* [[Dynamic recompilation]] - a feature of some emulators and virtual machines, where the system may recompile some part of a program during execution
 
==References==