Jump to content

List of performance analysis tools

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Allsvartr (talk | contribs) at 09:55, 11 September 2012 (Multiple languages: Remove nmon; it is a system monitor tool, not a performance analysis tool.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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

Multiple languages

The following tools work for multiple languages or binaries.

  • Acumem SlowSpotter and Acumem ThreadSpotter are tools from Acumem, which diagnose performance problems related to data locality, cache utilization and thread interactions. Supports most compiled languages on Linux and Solaris including Ada.
  • AQtime is a performance profiler and memory/resource debugging toolset for .NET 1.0, 1.1, 2.0, 3.0, 3.5 applications (including ASP.NET applications), Windows 32- and 64-bit applications including C, C++, Delphi for Win32 and VBScript and JScript functions.
  • CodeAnalyst as a free GUI based code profiler for AMD hardware x86 based machines from AMD.
  • Caliper is a profiling tool from HP for application running on HP-UX with Intel Itanium Integrity platform (IA-64).
  • DevPartner is Micro Focus's test suite for both .NET and Java that automatically detects and diagnoses software defects and performance problems.
  • DTrace is a comprehensive dynamic tracing framework created by Sun Microsystems for troubleshooting kernel and application problems on production systems in real time. Originally developed for Solaris, it has since been released under the free Common Development and Distribution License (CDDL) and has been ported to several other Unix-like systems.
  • dynaTrace is Compuware's Application Performance Management for .NET and Java applications.
  • DynInst is an api to allow dynamic injection of code into a running program.
  • gprof, several tools with combined sampling and call-graph profiling. BSD version is part of 4.2BSD and GNU version is part of GNU Binutils (from GNU Project). 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. gprof works for any language supported by the GNU Compiler Collection (gcc).
  • Linux Trace Toolkit collects data on processes blocking, context switches, and execution time. This helps identify performance problems over multiple processes or threads.
  • LTTng (Linux Trace Toolkit Next Generation) is a system software package for correlated tracing of the Linux kernel, applications and libraries
  • OProfile is a sampling profiler for Linux that counts cache misses, stalls, memory fetches, etc. It profiles everything running on the Linux system, including hard-to-profile programs such as interrupt handlers and the kernel itself.[1]
  • Oracle Solaris Studio Performance Analyzer - performance and memory profiler for C/C++/Fortran/Java. Also can trace MPI programs.
  • Paraver is a performance analysis tool based on trace files. It allows viewing the progress of the application in a temporal axis and also perform accumulation of performance metrics in a table like regular profilers.
  • PGPROF from The Portland Group provides sampling and compiler-based instrumentation for application profiling of C, C++, and Fortran applications using OpenMP and MPI parallelism on Linux, Windows, and Mac.
  • PmcTools provides FreeBSD's developers and system administrators with non-intrusive, low-overhead and innovative ways of measuring and analysing system performance. It exploits the same underlying counters as Linux' OProfile.
  • perf tools - Linux sampling profiler. Available in kernels from 2.6.31 version.
  • PAPI is a portable interface (in the form of a library) to hardware performance counters on modern microprocessors.
  • Pin (from Intel) - a dynamic binary instrumentation system that allows users to create custom program analysis tools. [2]
  • pprof from gperftools (by Google) - sampling profiler with contex-sensitive call graph capability.
  • Rational PurifyPlus is a performance profiling tool for Windows, Linux, Solaris and AIX, in addition to being a memory debugger and code coverage tool.
  • Shark is Apple's free performance analyzer for Macintosh executables. Discontinued with MacOSX 10.7.
  • Sysprof is a sampling CPU profiler for Linux 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.[3]
  • Systemtap is a programmable system tracing/probing tool for Linux. It may be scripted to generate time- or performance-counter- or function-based profiles of the kernel and/or its userspace.
  • Valgrind is a GPL'd system for debugging and profiling x86-Linux programs. It supports tools to either detect memory management and threading bugs, or profile performance (cachegrind and callgrind). It works for any language and the assembler. KCacheGrind, valkyrie and alleyoop are front-ends for valgrind.
  • VTune Amplifier XE is Intel Corporation's tool for serial and threaded performance analysis. It works with C/C++/Fortran/.NET/Java and other applications on Linux or Windows. 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.
  • Zoom is a graphical and command-line statistical (event-based) profiler for Linux from RotateRight. It supports most compiled languages on ARM and x86 processors.

Ada

  • 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++

  • Acumem SlowSpotter and Acumem ThreadSpotter
  • AQtime is a commercial product that profiles at the function and line level.
  • CodeAnalyst is a free and open-source performance analyzer from Advanced Micro Devices for programs on AMD hardware. It also does basic timer-based profiling on Intel processors.
  • CodeTune is a free, easy to use, GUI-based profiler for Windows applications
  • DTrace dynamic tracing tool for Solaris, FreeBSD, Mac OS X and other operating systems.
  • GlowCode is a performance and memory profiler for C++, 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.
  • Insure++ is Parasoft's runtime memory analysis and error detection tool. Its Inuse component provides a graphical view of memory allocations over time, with specific visibility into overall heap usage, block allocations, possible outstanding leaks, etc.
  • Parallel Studio from Intel 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.
  • Very Sleepy, 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
  • VTune from Intel for optimizing performance across Intel architectures.
  • Google-PerfTools which tests Heap, CPU and Memory usage.
  • MemPro Memory profiler for Win32 apps.

Delphi

Java

JavaScript

  • AjaxView is a free profiling tool for JavaScript by Microsoft Research.
  • Firebug is a Firefox plug-in for web development, also has a profiler for JavaScript.
  • Web Inspector, 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.

.NET

  • 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 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 [4]
  • Red Gate ANTS Performance Profiler is a commercial profiler for .NET
  • SlimTune A free profiling and performance tuning tool for .NET applications with an open source MIT License
  • SpeedTrace Pro is a commercial performance analysis and tracing tool for .NET
  • [[Telerik JustTrace]] Memory and performance profiler for .NET. JustTrace detects and resolves memory leaks and performance issues to optimize memory usage for applications in C# or any other .NET language.
  • Visual Studio
  • Insight Profiler is a free performance profiler with call sequence recording. The homepage is in German but the actual software is English.[5]

Oracle Database

  • MERITS Profiler is an Oracle SQL trace profiler that integrates the performance measurements in SQL trace files with information from the data dictionary (e.g. object statistics, table/index structure) and V$ dynamic performance views (e.g. v$bh, v$sql_plan_statistics_all) as well as with Active Workload Repository or Statspack (e.g. for previous execution plans).
  • Method R Profiler is a commercial response time profiler for Oracle SQL trace files.
  • MR Tools is a commercial suite of utilities for manipulating and mining Oracle SQL trace files.
  • MR Trace is a commercial extension for Oracle SQL Developer that collects and manages Oracle SQL trace files.
  • tkprof is a command-line utility distributed by Oracle Corporation, which formats Oracle SQL trace output into human readable format.

PHP

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

See also

References