Profiling (computer programming): Difference between revisions

Content deleted Content added
Raul654 (talk | contribs)
mNo edit summary
Raul654 (talk | contribs)
No edit summary
Line 1:
In [[computer science]], '''performance analysis''' (also known as '''program analysis''') is the use of specialized [[software]], called a profiler, to gather data about a program's execution. The profiler is used to determine how long certain parts of the program take to execute, how often they are executed, or to generate the [[call graph]] (the [[Graph (mathematics)|mathematical graph]] of which [[Subroutine|functions]] call which other functions)
 
Typically this information is used to identify those portions of the program that take the longest to complete. These time consuming parts can then be [[optimization|optomized]] to run faster. It is also a a common technique for [[debugging]].
 
''Program analysis tools are extremely important for understanding program behavior. Computer architects need such tools to evaluate how well programs will perform on new [[computer architecture|architectures]]. Software writers need tools to analyze their programs and identify critical pieces of code. [[Compiler]] writers often use such tools to find out how well their [[instruction scheduling]] or [[branch prediction]] [[algorithm]] is performing...'' (ATOM, [[PLDI]], '94)
 
Performance analysis is often used to deterine how long certain parts of the program take to execute, how often they are executed, or to generate the [[call graph]] (the [[Graph (mathematics)|mathematical graph]] of which [[Subroutine|functions]] call which other functions). Typically this information is used to identify those portions of the program that take the longest to complete. These time consuming parts can then be [[optimization|optomized]] to run faster. It is also a a common technique for [[debugging]].
 
==History==
Line 21:
The resulting data is not exact, but a stastistical approximation. ''The actual amount of error is usually more than one sampling period. In fact, if a value is n times the sampling period, the expected error in it is the square-root of n sampling periods.'' [http://lgl.epfl.ch/teaching/case_tools/doc/gprof/gprof_12.html]
 
Two of the most commonly used statistical profilers are [[GNU]]'s gprof and [[SGI]]'s Pixie.
===Instrumentation platforms===
 
===Instrumentation platforms===
* ATOM
* PIN
 
==External links==