Profiling (computer programming): Difference between revisions

Content deleted Content added
Npcomp (talk | contribs)
m Instrumentation: Added the '''Intermediate language''' section with a wikilink to OpenPAT. Note the stated benefits which differentiate the approach from say '''Source level''' (~one language) and '''Binary translation''' (address offsets).
Instrumentation: merge two sections
Line 82:
 
===Instrumentation ===
This technique effectively adds instructions to the target program to collect the required information. Note that [[instrumenting]] a program can cause performance changes, and may in some cases lead to inaccurate results and/or [[heisenbug]]s. The effect will depend on what information is being collected, and on the level of detail required. For example, adding code to count every procedure/routine call will probably have less effect than counting how many times each statement is obeyed. A few computers have special hardware to collecting information; in this case the impact on the program is minimal.
 
Instrumentation is key to determining the level of control and amount of time resolution available to the profilers. The following lists a few popular tools (as of 2012) representative of each category.
* '''Manual''': Performed by the programmer, e.g. by adding instructions to explicitly calculate runtimes, simply count events or calls to measurement [[API]]s such as the [[Application Response Measurement]] standard.