What is Profiler?
Most commonly, profiling information serves to aid program optimization. Profiling is achieved by instrumenting either the program source code or its binary executable form using a tool called a profiler (or code profiler).
Simply put, any tool or technique you use to analyze and optimize the performance can be called a profiler.
How does Profilers work?
Commonly used profilers simply examine the running program regularly to see what assembly instruction is currently being executed (the program counter) and which routines called the current function (the call stack). This kind of sampling profiler can work with standard binaries, but are more useful if you have debugging symbols to work out lines of code given addresses in the program.
Other profilers involve recompiling the program to insert instructions (known as instrumentation) to count how often each continuous set of instructions (basic blocks) are executed, or maybe even record the sequence in which basic blocks are executed, or record the content of variables at certain places.
Types of Profilers:
It is common to classify profiling tools into two major categories:
- Memory profilers
- Performance profilers
All profilers, and performance profilers in particular, can be classified in yet another two categories:
- Event-based profilers (also called tracing profilers)
- Statistical profilers (also called sampling profilers)
50 profilers are as listed below:
- Allinea MAP
- AMD CodeXL
- AQTime
- C++ Performance Validator
- callgrind
- CodeAnalyst Performance Analyzer
- cRunWatch
- CxxProf
- DevPartner
- dprofiler
- DTrace
- Dyninst
- Embedded Profiler
- Extrae
- GlowCode
- GoogleTest
- GProf
- Intel Architecture Code Analyzer
- Intel Parallel Adivsor Lite
- Intel Parallel Studio
- Intel Performance Bottleneck Analyzer 4.0.1 Update Released
- Intel Performance Counter Monitor
- Intel Software Autotuning Tool
- Intel Software Tuning Agent
- Intel Vtune Amplifier
- kernrate
- likwid
- Luke Stackwalker
- MicroProfiler
- oprofile
- PAPI
- perf
- perfmon2
- perftools
- Proffy
- PTU
- Scalasca
- Shiny
- stacktrace command line arguement
- Tau
- Threadspotter
- TrueTime
- Valgrind
- VampirTrace
- Very Sleepy
- Visual Studio Team System
- VSPerfMon
- VTune Performance Analyzer XE
- Windows Performance Analyzer
- Xperf
References:
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.