List of performance analysis tools

From Wikipedia, the free encyclopedia
Jump to: navigation, search

This is a list of performance analysis tools for use in software development.

General purpose, language independent[edit]

The following tools work based on log files that can be generated from various systems.

  • TimeToPic visualizes a log file. If system has logging facility, its output can be shown on visual timeline. Developer can see from visualization what is happening on log. Can be used for code and "logic" level analysis. There are version for Windows and Linux. Supports log sizes up to 1 Gigabyte.
  • time (Unix) - can be used to determine the run time of a program, separately counting user time vs. system time, and CPU time vs. clock time.[1]

Multiple languages[edit]

The following tools work for multiple languages or binaries.

Name/Manufacturer OS Compiler/Language What It Does License
Allinea MAP[2] by Allinea Software Linux C, C++, Fortran/Fortran90 applications. Performance profiler. Shows I/O, communication, floating point operation usage and memory access costs.

Supports multi-threaded and multi-process applications - such as those with MPI or OpenMP parallelism and scales to very high node counts.

aprof[3] Linux Any, including assembler

Input-sensitive performance profiler based on Valgrind designed to help developers understand how an application’s performance scales as a function of its input data, exposing possible asymptotic inefficiencies.

Free/open source (GPL)
AQtime by SmartBear Software Windows .NET 1.0 to 4.0 applications (including ASP.NET applications), Silverlight 4.0 applications, Windows 32- and 64-bit applications including C, C++, Delphi for Win32 and VBScript and JScript functions Performance profiler and memory/resource debugging toolset Proprietary
CodeAnalyst by AMD Linux, Windows C, C++, .NET, Java (works at the executable level) GUI based code profiler; does only basic timer-based profiling on Intel processors. Based on OProfile.
As of Mar-2013, CodeAnalyst has been replaced by AMD CodeXL (see below).
Free/open source (GPL) or proprietary
AMD CodeXL by AMD Linux, Windows For CPU profiling: C, C++, .NET, Java (works at the executable level).
For GPU profiling and debugging: OpenCL.
A tool suite that includes both GPU and CPU profilers, as well as a GPU debugger and a static kernel analyzer. Free
Caliper by HP HP-UX with Intel Itanium Integrity platform (IA-64). Profiling tool
CPUProfiler[4] by OsLe Tek Linux, Windows, WinCE Any application compiled for Intel, ARM, PowerPC architectures Monitors CPU and memory usage of processes, and charts process stability during program development. Designed for program managers, allows remote monitoring and management of CPU profiling sessions through a web browser. Proprietary
DevPartner by Borland / Micro Focus .NET, Java Test suite that automatically detects and diagnoses software defects and performance problems. Proprietary
DTrace by Sun Microsystems Solaris, Linux, BSD, Mac OS X Comprehensive dynamic tracing framework for troubleshooting kernel and application problems on production systems in real time. Free/open source (CDDL)
Lucierna by Lucierna[5] Linux (any distribution, kernel 2.6+), Sun Solaris, HP-UX, AIX, Mac OS X 10.7 +, MS Windows Server 2003, 2008 .NET, Java and PHP (for web sites and desktop software) Application Performance Management Proprietary
dynamoRIO by RIO [6] Linux, Windows Dynamic binary instrumentation framework for the development of dynamic program analysis tools. Free/open source - BSD
Dynatrace [7] Linux, Windows, iOS, Android, Azure, AWS, AIX, Solaris, HP/UX, zOS, zLinux .NET, Java, PHP, HTML5, Ajax (for web sites), ObjectiveC/iOS, Java/Android, C/C++, CICS, Apache, Nginx, Cassandra, Hadoop, MongoDB, HBase Application Performance Management Proprietary
DynInst Linux, Windows, BlueGene/Q API to allow dynamic injection of code into a running program Free/open source
GlowCode Windows 64-bit and 32-bit applications, C, C++, .NET, and dlls generated by any language compiler. Performance and memory profiler which identifies time-intensive functions and detects memory leaks and errors Proprietary
gprof Linux/Unix Any language supported by gcc Several tools with combined sampling and call-graph profiling. A set of visualization tools, VCG tools, uses the Call Graph Drawing Interface (CGDI) to interface with gprof. Another visualization tool which interfaces with gprof is KProf. Free/open source - BSD version is part of 4.2BSD and GNU version is part of GNU Binutils (by GNU Project)
IgProf[8] Linux Any compiled language (C, C++, Fortran, etc.), Python (cProfile) compatibility Performance (sampling) and memory (heap, leaks, and total dynamic allocations) profiler, plus dynamic binary instrumentation. Text and navigable webpage output with full call graphs. GPL
inspectIT Linux, Mac OS X, Windows Java Application performance management solution for monitoring and analyzing software applications. Free/Open Source (AGPLv3)
Linux Trace Toolkit (LTT) Linux Requires patched kernel Collects data on processes blocking, context switches, and execution time. This helps identify performance problems over multiple processes or threads. Superseded by LTTng. GPL
LTProf[9] Windows Visual C++, Borland CBuilder, Delphi and VB applications CPU profiling tool Commercial
LTTng (Linux Trace Toolkit Next Generation) Linux System software package for correlated tracing of kernel, applications and libraries GPL/LGPL/MIT
OProfile[10] Linux Profiles everything running on the Linux system, including hard-to-profile programs such as interrupt handlers and the kernel itself. Sampling profiler for Linux that counts cache misses, stalls, memory fetches, etc. Open Source GPLv2
OpenPAT[11][12] Linux, FreeBSD, OS X Any compilable language including C, C++, Fortran and languages that compile to bytecodes such as Java and C# with appropriate toolchain configurations. Statically instruments program assembly to call a tool with a stream of dynamic trace information when the program runs. Existing tools measure hotspot, control flow, data flow and other information. Free and Open Source (requires registration)
Oracle Solaris Studio Performance Analyzer[13] Linux, Solaris C, C++, Fortran, Java; MPI Performance and memory profiler Free
Paraver Linux, Mac OS X, Windows [14] For parallel computing clusters Performance analysis tool based on trace files; allows viewing the progress of the application in a temporal axis and also perform accumulation of performance metrics in a table like regular profilers. Free/open source (LGPL)
Performance and Coverage Analyzer (PCA) OpenVMS OpenVMS compiled languages, including Ada, Basic, C/C++, COBOL, Fortran, Pascal Compiler-based instrumentation for application profiling of compiled binary (executable) programs Proprietary
PGPROF by The Portland Group Linux, Mac OS X, Windows C, C++, and Fortran applications using OpenMP and MPI parallelism Sampling and compiler-based instrumentation for application profiling Proprietary
PmcTools FreeBSD Provides non-intrusive, low-overhead and innovative ways of measuring and analysing system performance. It exploits the same underlying hardware counters as Linux' OProfile.
perf tools Linux kernel 2.6.31+ Sampling profiler with support of hardware events on several architectures. GPL
Performance Application Programming Interface (PAPI) Various Library for hardware performance counters on modern microprocessors
Pin by Intel[15] Linux, Windows, OSX, Android Dynamic binary instrumentation system that allows users to create custom program analysis tools Proprietary but free for non-commercial use
pprof, part of gperftools[16] by Google Linux, Unix Sampling profiler with context-sensitive call graph capability. Open-source
Prism by CriticalBlue Linux, Android C/C++, Java, JavaScript Tool that dynamically traces software applications at runtime to capture data interactions between threads, data dependencies, cache analysis, along with the microprocessor pipeline Proprietary
Rational PurifyPlus AIX, Linux, Solaris, Windows Performance profiling tool, memory debugger and code coverage tool Proprietary
Periscope [17] Linux C/C++, Fortran Automatic performance analysis tools which reports different performance problems. Part of the Periscope Tuning Framework which closely integrates and automates performance analysis and performance tuning. Free/open source (BSD license)
Ruxit[18] Linux, Windows Java, .NET, Node.js, PHP, Apache, IIS, Nginx, VMware, AWS, Azure, Docker SaaS-based host, environment and application monitoring solution Proprietary
Scalasca [19] Linux C/C++, Fortran Parallel trace analyser Free/open source (BSD license)
Score-P [20] Linux C/C++, Fortran Performance measurement tool for tracing and profiling Free/open source (BSD license)
Shark by Apple Mac OS X (discontinued with 10.7) Performance analyzer Free
Shiny[21] Cross-platform C, C++, Lua Performance analyzer with call graphs and time allocations Free/open source (MIT license)
SlowSpotter and ThreadSpotter by Acumem (Rogue Wave) Linux, Solaris, Windows Most compiled languages including Ada Diagnose performance problems related to data locality, cache utilization and thread interactions. Commercial
Stackify Linux, Windows Most compiled languages Code-level application performance management. Integrated application and server monitoring, with error and log management and application performance management (APM) Commercial
Streamline[22] by ARM Holdings Linux, Android C and C++ A graphical performance visualizer of hardware and software for ARM CPUs, Mali GPUs, OpenCL, and power consumption. Proprietary
Sysprof Linux Sampling CPU profiler that uses a kernel module to profile the entire system, as opposed to a single application. It displays the time spent in each branch of the applications' calltrees.[23] GPLv2
Systemtap Linux Programmable system tracing/probing tool; may be scripted to generate time- or performance-counter- or function-based profiles of the kernel and/or its userspace. Open source
TAU Linux, Mac OS X, Windows C, C++, Fortran/Fortran90, UPC, Java, Python, MPI, OpenMP, CUDA. System for profiling and tracing; supports gathering performance information through instrumentation of functions, methods, and basic blocks as well as event-based sampling. Paraprof visualization tool aggregates results in single node/context/thread forms. Open source
Valgrind Linux, OSX, Solaris, Android Any, including assembler System for debugging and profiling; supports tools to either detect memory management and threading bugs, or profile performance (cachegrind and callgrind). KCacheGrind, valkyrie and alleyoop are front-ends for valgrind. Free/open source (GPL)
Vampir[24] Linux, Mac OS X, Windows Any language supported by the VampirTrace[25] or Score-P[26] measurement infrastructures (currently C, C++, Fortran/Fortran90 with support for various parallelization paradigms like MPI, OpenMP and Pthreads) Vampir is a visualization tool for analyzing trace files created with the open source measurement infrastructures VampirTrace and Score-P. Proprietary
VTune Amplifier XE by Intel Corporation Linux, Windows C, C++, Fortran, .NET, Java Tool for serial and threaded performance analysis. Hotspot, call tree and threading analysis works on both Intel and AMD x86 processors. Hardware event sampling that uses the on chip performance monitoring unit requires an Intel processor. Proprietary
Windows Performance Analysis Toolkit by Microsoft[27] Windows Freeware/proprietary
RotateRight Zoom Linux, Mac OS X, Viewer Only for Windows Supports most compiled languages on ARM and x86 processors. Graphical and command-line statistical (event-based) profiler
VisualSim Linux,OS X,Microsoft Windows Supports C/C++/SystemC Graphical modeling and Simulation platform to select, analyze and validate architecture of complex electronics systems for performance, power and reliability. Proprietary


  • Acumem SlowSpotter and Acumem ThreadSpotter
  • AdaNav sometimes bundled with ObjectAda
  • NightTrace and the instrumented RedHawk Linux kernel from Concurrent Computer Corporation
  • RootCause from OC Systems

C and C++[edit]

  • Allinea MAP performance profiler supporting Linux platforms
  • AppDynamics Application Performance Management solution for C/C++ applications via SDK
  • IBM Rational Purify
  • AQtime Pro Performance profiler and memory allocation debugger can be integrated into Microsoft Visual Studio, Embarcadero RAD Studio or can run as a stand-alone application.
  • MTuner Memory profiliing, analysis and leak detection tool. Supports multiple platforms.
  • Deleaker[28] is a run-time error detection and debugging tool for Visual C++ developers.
  • Celero is an open source C++ library for building profile suites for projects in the same vein as unit testing and offers an API similar to GoogleTest.
  • CodeTune[29] is a free, easy to use, GUI-based profiler for Windows applications
  • CxxProf is a manual instrumented Profiling library for C++. Its goal is to provide easy integration into existing projects with just as little overhead as possible.
  • Embedded Profiler[30] for gcc, MinGW, and Visual Studio
  • Intel Parallel Studio contains Parallel Amplifier, which tunes both serial and parallel programs. It also includes Parallel Inspector, which detects races, deadlocks and memory errors. Parallel Composer includes codecov, a command line coverage tool.
  • Intel SEAPI[31] is free open-source cross-platform performance & memory profiler, that utilises OS-specific and 3rd-party tools for visualisation. It's based on manual & compiler-automated instrumentation.
  • Parasoft Insure++[32] Provides a graphical tool that displays and animates memory allocations in real time to expose memory blowout, fragmentation, overuse, bottlenecks and leaks.
  • Proffy[33] For Windows, includes a C++ header and produces call graphs.
  • TAU, a profiling and tracing toolkit for performance analysis of parallel programs.
  • Very Sleepy,[34] a simple yet effective profiler which can profile any native Windows application with built-in debugging information (without need for recompilation). It is released under GPL.
  • Visual Studio Team System Profiler is Microsoft's commercial profiler
  • Profiny is platform-independent, includes a C++ header and supports both flat profiling and call-graph profiling.
  • graprof is a C profiler for GNU/Linux systems that supports flat profiling, call-graphs and memory profiling, licensed under the GPL.
  • VSXu has a built-in open source profiler for collecting data, call graphs with a generic data collection back end
  • D Profiler [35] An open source lightweight CPU+memory+IO+lock profiler for Win32/64, support call graph, flame graph etc.
  • MicroProfiler[36][37] is an open-source low-overhead instrumenting profiler with realtime statistics display for native applications.

(see also "Multiple languages" section above)



  • AppPerfect Java Profiler[39]
  • Censum, Garbage Collection log analysis[40]
  • djigger an open-source APM
  • CollectionSpy, a profiler that focuses exclusively on the Java Collections Framework.
  • Eclipse Memory Analyzer, a memory analysis tool that also has some performance related features.
  • Eclipse TPTP
  • Eclipse Yari by
  • Illuminate, Performance Diagnostic Engine[41]
  • inspectIT - free performance diagnostics tool with very small overhead.
  • Intel SEAPI[42] is free open-source cross-platform performance & memory profiler, that utilises OS-specific and 3rd-party tools for visualisation.
  • javOSize, free production friendly profiler not only for finding, but also fixing, performance and functional problems without restarting or reconfiguring applications.[43]
  • JConsole is the profiler which comes with the Java Development Kit, it supports all needed features.
  • JProbe, an enterprise class Java profiler by Quest Software
  • JProfiler
  • JRockit Mission Control, a profiler with low overhead.
  • mBProfiler, a profiler suitable for embedded devices
  • Netbeans Profiler, a profiler integrated into the NetBeans IDE (internally uses jvisualvm profiler)
  • OKTECH Profiler, an open-source, sampling and instrumentation Java profiler for Java 5+ applications; local or remote profiling; optional commercial support.
  • Plumbr, Java application performance monitoring with automated root cause detection. Links memory leaks, GC inefficiency, slow database and external web service calls, locked threads, and other performance problems to the line in source code that causes them.[44]
  • stagemonitor, an open source solution to application performance monitoring for java server applications.
  • RootCause and RTI from OC Systems
  • Takipi, production debugging, profiling and exceptions tracking.[45]
  • VisualVM is a visual tool integrating several commandline JDK tools and lightweight profiling capabilities.
  • XRebel, a lightweight profiler for Java web applications by ZeroTurnaround. Provides insight into the application and presents performance data via a simple widget in the browser.
  • Sniffy is an open source profiler for Java-based web applications. It does not have a standalone UI but rather injects a profiler widget to every HTML page returned by Java server
  • YourKit Java Profiler is a performance and memory JVM profiler. It features on-demand profiling and low overhead.
  • jvmtop jvmtop is an open source performance monitoring tool, profiler included.


  • AspectJS is a proxy-function-based library, the Logger component[46] of which allows arbitrary instrumentation of method calls.
  • Firebug is a Firefox plug-in for web development, also has a profiler for JavaScript.
  • Developer Tools, a built-in tool in Webkit based browsers like Apple Safari 3+ and Google Chrome also has a profiler for Javascript
  • Google Speed Tracer part of Google Web Toolkit is a more detailed performance analysis tool capable of capturing in-depth data from browser rendering to Javascript profiling. Although, it is currently available only for developer versions of Google Chrome.
  • Nodetime[47] for Node.js
  • Microsoft Visual Studio AJAX Profiling Extensions is a free profiling tool for JavaScript by Microsoft Research.
  • spy-js[48] is a profiling/tracing/debugging tool for JavaScript that works across different browsers/platforms/devices.
  • dynaTrace AJAX Edition[49] is a free Internet Explorer and Firefox performance-tracing and diagnostics tool, based on dynaTrace/Compuware PurePath technology.
  • TrigerSoft UX Profiler is a free Chrome Developer Tools Extension that tracks performance from user perspective by grouping related asynchronous events.
  • YSlow, analyzes websites and why they are slow based on Yahoo!'s rules.


  • PerfView is a free CPU and memory profiler provided by the .NET Performance team for C#, VB, and F# applications running on the CLR. It can also profile native and Javascript code.
  • CLR Profiler is a free memory profiler provided by Microsoft for CLR applications.
  • EQATEC Profiler is a performance profiler for .NET, Windows Phone7, .NET CF and Silverlight, free (limited features free license) and licensed versions
  • GlowCode is a performance and memory profiler for .NET applications using C# and other .NET languages. It identifies time-intensive functions and detects memory leaks and errors in native, managed and mixed Windows x64 and x86 applications.
  • JetBrains dotTrace Profiler is a commercial performance and memory profiler for .NET, Silverlight, .NET CF 3.5, SharePoint, XBAP and XNA Framework
  • NProf NProf was an open source statistical profiler for .NET. It is no longer actively developed[50]
  • Red Gate ANTS Performance Profiler is a commercial profiler for .NET
  • NProfiler Community Edition is a free professional .NET performance profiler.[51]
  • Scitech .NET Memory Profiler[52] - proprietary
  • SlimTune A free profiling and performance tuning tool for .NET applications with an open source MIT License (This project has been archived. Version 0.3.0 released on 12 February 2011)
  • SpeedTrace Pro is a commercial performance analysis and tracing tool for .NET
  • Telerik JustTrace is a commercial memory and performance profiler for .NET.
  • Visual Studio
  • Insight Profiler is a free performance profiler with call sequence recording. The homepage is in German but the actual software is English.[53]
  • Software Verify .NET Tool Suite is a commercial suite of profiling, memory leak detection and code coverage tools for .NET, ASP.NET, and WPF. There are also editions for C++ (native 32/64 bit), and other languages as well.[54]
  • Chronos .Net Performance Profiler is a free .NET performance profiler (inactive from 2014)


  • AMD CodeXL is a tool suite that contains an OpenCL GPU debugger and an OpenCL GPU profiler (in addition to a traditional CPU profiler). AMD CodeXL also includes an OpenCL static kernel analysis tool.
  • TAU, a profiling and tracing toolkit for performance analysis of parallel programs.


  • Dbg
  • Xdebug is a PHP extension which provides debugging and profiling capabilities.


  • cProfile, profile, and pstats modules are usually built-into Python 2.5+.[55]
  • FunkLoad is a functional and load web tester written in Python.[56]
  • Intel SEAPI[57] is free open-source cross-platform performance & memory profiler, that utilises OS-specific and 3rd-party tools for visualisation.

See also[edit]


  1. ^ "CodeXL". Retrieved 26 September 2013. 
  2. ^ "MAP - the C, C++ and F90 profiler for high performance and multithreaded Linux applications". Retrieved 5 June 2015. 
  3. ^ "aprof - An input-sensitive performance profiler - Google Project Hosting". doi:10.1109/TSE.2014.2339825. Retrieved 5 June 2015. 
  4. ^ "Benchmark your app's performance". Retrieved 5 June 2015. 
  5. ^ "Web Application Performance Management - APM". Retrieved 5 June 2015. 
  6. ^ "The RIO Project". 1 December 2001. Retrieved 5 June 2015. 
  7. ^ [1]
  8. ^ "IgProf, The Ignominous Profiler". Retrieved 1 December 2015. 
  9. ^ "Home - Lightweight Technologies". Retrieved 5 June 2015. 
  10. ^ "Smashing performance with OProfile". 16 October 2003. Retrieved 5 June 2015. 
  11. ^ "The Open Performance Analysis Toolkit". Retrieved 5 June 2015. 
  12. ^ Dr. Simon Spacey. "OpenPAT : The Open Performance Analysis Toolkit" (PDF). Retrieved 5 June 2015. 
  13. ^ "Oracle Solaris Studio 12.4: Performance Analyzer". Oracle Corporation. 
  14. ^ "Paraver-Dimemas / Software and Traces Downloading | BSC-CNS". Retrieved 5 June 2015. 
  15. ^ "Pin - A Dynamic Binary Instrumentation Tool | Intel® Developer Zone". 21 May 2013. Retrieved 5 June 2015. 
  16. ^ "gperftools - Fast, multi-threaded malloc() and nifty performance analysis tools - Google Project Hosting". Retrieved 5 June 2015. 
  17. ^ "Periscope". Retrieved 11 February 2016. 
  18. ^ "Ruxit - All-in-one Application Performance Management". Retrieved 12 April 2016. 
  19. ^ "Scalasca". Retrieved 26 January 2016. 
  20. ^ "Score-P". Retrieved 26 January 2016. 
  21. ^ "shinyprofiler - A state of the art C/C++/Lua Profiler - Google Project Hosting". Retrieved 5 June 2015. 
  22. ^ Dal, Lorenzo. "Streamline Full Features Overview | ARM DS-5 Development Studio". Retrieved 5 June 2015. 
  23. ^ "Profiling entire system activity with sysprof". Retrieved 5 June 2015. 
  24. ^ "Vampir 8.4". Retrieved 5 June 2015. 
  25. ^ "Tud - Zih - Vampirtrace" (in German). Retrieved 5 June 2015. 
  26. ^ Christian Roessel (12 May 2015). "Projects :: Score-P". Retrieved 5 June 2015. 
  27. ^ "MSDN-the microsoft developer network". 19 May 2015. Retrieved 5 June 2015. 
  28. ^ "Memory Leak C++ Detection Tool And Memory Profiler For Visual Studio". Retrieved 5 June 2015. 
  29. ^ "CodeTune". 16 July 2014. Retrieved 5 June 2015. 
  30. ^ "C/C++ Profiler". Retrieved 5 June 2015. 
  31. ^
  32. ^ "Runtime Analysis and Memory Error Detection for C and C++". Retrieved 26 September 2013. 
  33. ^ Paul Richards, (29 April 2012). "Proffy". Retrieved 5 June 2015. 
  34. ^ "codersnotes / Very Sleepy". Retrieved 5 June 2015. 
  35. ^ "xwlan/dprofiler". Retrieved 5 June 2015. 
  36. ^ "MicroProfiler in VisualStudio Gallery". Artem Gevorkyan. 
  37. ^ "micro-profiler project in". Artem Gevorkyan. 
  38. ^ [2] Archived 11 October 2013 at the Wayback Machine.
  39. ^ "AppPerfect Java Profiler". Retrieved 26 September 2013. 
  40. ^ "Garbage Collection Analysis". Retrieved 15 October 2014. 
  41. ^ "Performance Diagnostic Engine". Retrieved 15 October 2014. 
  42. ^
  43. ^ "javOSize". Retrieved 16 July 2015. 
  44. ^ "Plumbr". Retrieved 29 February 2016. 
  45. ^ "Takipi". Retrieved 1 March 2014. 
  46. ^ "AJS_Logger User-Guide: Part 1 - Starting Out". Retrieved 5 June 2015. 
  47. ^ "Performance Analytics for Node.js Applications, Node.js APM". Retrieved 5 June 2015. 
  48. ^ "tracing, profiling, debugging javascript". Retrieved 5 June 2015. 
  49. ^ "Dynatrace AJAX Edition Community Home - dynaTrace AJAX Edition - Dynatrace Community". Retrieved 5 June 2015. 
  50. ^ "nprof - A statistical profiler for .NET - Google Project Hosting". Retrieved 5 June 2015. 
  51. ^ "NProfiler™ - A free, fast and extremely accurate .NET profiler". Retrieved 27 February 2016. 
  52. ^ "NET Memory Profiler - In-depth .NET Memory Profiling". Retrieved 5 June 2015. 
  53. ^ Archived from the original on 21 May 2013. Retrieved 16 July 2012.  Missing or empty |title= (help)
  54. ^ "Software Tool Suites for .Net, C#, ASP.Net, WPF". Retrieved 5 June 2015. 
  55. ^ "26.4. The Python Profilers". Retrieved 26 September 2013. 
  56. ^ "FunkLoad". Retrieved 6 June 2014. 
  57. ^

External links[edit]