List of performance analysis tools

From Wikipedia, the free encyclopedia
Jump to navigation Jump to 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
Arm MAP Linux C, C++, Fortran/Fortran90 and Python 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.

AppDynamics by Cisco Linux, Windows, iOS, Android, Azure, AWS, AIX .NET, Java, PHP, HTML5, ObjectiveC/iOS, Java/Android, C/C++, Apache, Nginx, Cassandra, DataBases Application Performance Management Proprietary
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++,Objective C .NET, Java (works at the executable level) AMD uProf supersedes CodeAnalyst and CodeXL for CPU and Power profiling on AMD processors.

GUI based code profiler; does only basic timer-based profiling on Intel processors. Based on OProfile.

Free/open source (GPL) or proprietary
AMD CodeXL by AMD Linux, Windows For GPU profiling and debugging: OpenCL. A tool suite for GPU profiling, GPU debugger and a static kernel analyzer. Free/open source (MIT)
AMD uProf by AMD Linux, Windows C, C++, .NET, Java, Fortran Code profiler, does sampling based profiling on AMD processors. 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)
dynamoRIO by RIO Linux, Windows Dynamic binary instrumentation framework for the development of dynamic program analysis tools. Free/open source - BSD
Dynatrace 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
Extrae Linux, Android Primarily C/C++/Fortran, but can profile any application linking against supported parallel libraries (e.g. MPI4PY) HPC performance analysis tool with viewer and supporting utilities. Primarily designed for parallel applications with support for MPI, OpenMP, CUDA, OpenCL, pthreads, and OmpSs. Additional features include user function tracing and hardware event capture via PAPI. Free/open source - LGPL-2.1
FusionReactor Linux, Windows, Mac, AWS, Azure, Google Cloud Java, ColdFusion, Apache, MongoDB Works with any Language supported by the JVM Application Performance Management, Performance and Root Cause Analysis, Combines APM and Low Level Developer Style Tooling; debugger, java profiler, memory profiler, thread profiler, CPU profiling Proprietary
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)
Instana Linux, Windows, iOS, Android, Azure, AWS, AIX, Solaris, HP/UX, zOS, zLinux .NET, .Net core, Java, PHP, Ruby, Python, Crystal, Scala, Kotlin, Clojure, Haskell, Node.js, Web Browser, Apache, Nginx, Cassandra, Hadoop, MongoDB, Elasticsearch, Kafka Application Performance Management Proprietary
Intel Advisor Linux and Windows C, C++ and Fortran Vectorization (SIMD) optimization. Find hot loops, ID what is blocking vectorization, check for loop-carried dependencies, analyze memory access patterns and optimize stride and memory footprint. Includes cache aware roofline analysis. Proprietary. Bundled as a part of Intel Parallel Studio.

Freeware licenses for open source developers, students, educators and academic researchers.

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
LTTng (Linux Trace Toolkit Next Generation) Linux System software package for correlated tracing of kernel, applications and libraries GPL/LGPL/MIT
OProfile 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
Oracle Solaris Studio Performance Analyzer Linux, Solaris C, C++, Fortran, Java; MPI Performance and memory profiler Proprietary freeware
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
LIKWID Linux C/C++, Fortran, Python, Java and Lua Toolsuite of command line applications and library for performance oriented programmers (hardware performance monitoring, affinity control, ...) GPLv3
Pin by Intel Linux, Windows, OSX, Android Dynamic binary instrumentation system that allows users to create custom program analysis tools Proprietary but free for non-commercial use
Rational PurifyPlus AIX, Linux, Solaris, Windows Performance profiling tool, memory debugger and code coverage tool Proprietary
Scalasca Linux C/C++, Fortran Parallel trace analyser Free/open source (BSD license)
Shark by Apple Mac OS X (discontinued with 10.7) Performance analyzer Proprietary freeware
Superluminal Performance Windows, Xbox One C, C++ Next-generation sampling profiler, built with usability and scalability in mind. Proprietary
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
timemory Linux, OSX, Windows C, C++, Python, Fortran Modular framework for creating customized performance measurements and analysis collections. Includes many pre-built components for timing, resource usage, hardware-counters, Roofline Model. Useful for handling multiple instrumentation APIs, e.g. VTune, Intel Advisor, LIKWID. Free/Open-source (MIT)
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)
VTune Amplifier XE by Intel Corporation Linux, Windows C, C++, C#, Fortran, .NET, Java, Python, Go, ASM Assembly 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. Also available as a part of Intel Parallel Studio.

Freeware licenses for open source developers, students, educators and academic researchers.

Windows Performance Analysis Toolkit by Microsoft Windows Proprietary freeware
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

C and C++[edit]

  • Arm MAP, a performance profiler supporting Linux platforms.
  • AppDynamics, an application performance management solution[buzzword] for C/C++ applications via SDK.
  • AQtime Pro, a performance profiler and memory allocation debugger that can be integrated into Microsoft Visual Studio, and Embarcadero RAD Studio, or can run as a stand-alone application.
  • IBM Rational Purify was a memory debugger allowing performance analysis.
  • Intel Parallel Studio contains Intel VTune Amplifier, which tunes both serial and parallel programs. It also includes Intel Advisor and Intel Inspector. Intel Advisor optimizes vectorization (use of SIMD instructions) and prototypes threading implementations. Intel Inspector detects and debugs races, deadlocks and memory errors.
  • Parasoft Insure++ provides a graphical tool that displays and animates memory allocations in real time to expose memory blowout, fragmentation, overuse, bottlenecks and leaks.
  • Visual Studio Team System Profiler, commercial profiler by Microsoft.
  • VSXu has a built-in open source profiler for collecting data, call graphs with a generic data collection back end.


  • inspectIT is an open-source application performance management (APM) solution[buzzword] for monitoring and analyzing software applications, available under the Apache License, Version 2.0 (ALv2).
  • JConsole is the profiler which comes with the Java Development Kit
  • JProfiler
  • JRockit Mission Control, a profiler with low overhead.
  • Netbeans Profiler, a profiler integrated into the NetBeans IDE (internally uses jvisualvm profiler)
  • 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.
  • OverOps, Continuous reliability for the modern software supply chain, automatically detect and deliver root cause automation for all errors.
  • VisualVM is a visual tool integrating several commandline JDK tools and lightweight profiling capabilities. It is bundled with the Java Development Kit since version 6, update 7.
  • FusionReactor, Java application performance monitoring - low overhead, production grade tools for production debugging, code profiling, memory and thread analysis



  • CLR Profiler is a free memory profiler provided by Microsoft for CLR applications.
  • 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.
  • Visual Studio


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

See also[edit]


  1. ^ "CodeXL". Archived from the original on 19 September 2013. Retrieved 26 September 2013.

External links[edit]