Monday, September 14, 2015

50 Software Performance Analyzers (Profilers)

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:
  1. Memory profilers
  2. Performance profilers
All profilers, and performance profilers in particular, can be classified in yet another two categories:
  1. Event-based profilers (also called tracing profilers)
  2. Statistical profilers (also called sampling profilers)

50 profilers are as listed below:

  1. Allinea MAP
  2. AMD CodeXL
  3. AQTime
  4. C++ Performance Validator
  5. callgrind
  6. CodeAnalyst Performance Analyzer
  7. cRunWatch
  8. CxxProf
  9. DevPartner
  10. dprofiler
  11. DTrace
  12. Dyninst
  13. Embedded Profiler
  14. Extrae
  15. GlowCode
  16. GoogleTest
  17. GProf
  18. Intel Architecture Code Analyzer
  19. Intel Parallel Adivsor Lite
  20. Intel Parallel Studio
  21. Intel Performance Bottleneck Analyzer 4.0.1 Update Released
  22. Intel Performance Counter Monitor
  23. Intel Software Autotuning Tool
  24. Intel Software Tuning Agent
  25. Intel Vtune Amplifier
  26. kernrate
  27. likwid
  28. Luke Stackwalker
  29. MicroProfiler
  30. oprofile
  31. PAPI
  32. perf
  33. perfmon2
  34. perftools
  35. Proffy
  36. PTU
  37. Scalasca
  38. Shiny
  39. stacktrace command line arguement
  40. Tau
  41. Threadspotter
  42. TrueTime
  43. Valgrind
  44. VampirTrace
  45. Very Sleepy
  46. Visual Studio Team System
  47. VSPerfMon
  48. VTune Performance Analyzer XE
  49. Windows Performance Analyzer
  50. Xperf