Content deleted Content added
mNo edit summary |
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.
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==
|