List of performance analysis tools
Appearance
![]() | This article's use of external links may not follow Wikipedia's policies or guidelines. (December 2010) |
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 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.
- DynInst is an api to allow dynamic injection of code into a running program.
- gprof, the GNU Profiler, is part of GNU Binutils (which are part of the 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).
- HPCToolkit is a suite of open-source tools for measurement and analysis of the performance of serial and parallel programs. HPCToolkit measures performance of unmodified, optimized code using statistical sampling driven by interrupts from an interval timer or hardware performance counters. HPCToolkit supports performance analysis of parallel codes that use MPI, OpenMP, pthreads, Shmem, or any combination thereof. HPCToolkit supports compiled languages including C, C++, and Fortran. HPCToolkit attributes and presents performance information at multiple levels, including dynamic call chains, procedures, inlined functions, loops, and individual source lines.[1]
- Linux Trace Toolkit, the Linux Trace Toolkit, collects data on processes blocking, context switches, and execution time. This helps identify performance problems over multiple processes or threads.
- MyARM, is a transaction performance measurement tool for ARM-instrumented applications supporting C/C++, Java, CSharp .NET and Python.[2]
- New Relic RPM is New Relic's SaaS-based application performance management tool that monitors Ruby, Java, PHP and .NET web applications [3]
- NightTrace and the instrumented RedHawk Linux kernel[4] from Concurrent Computer Corporation profile Ada code.
- 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.[5]
- PAPI is a portable interface (in the form of a library) to hardware performance counters on modern microprocessors.
- Periscope is an automatic performance analysis toolkit that searches for performance problems related to stall cycles, cache misses, MPI, OpenMP, and scalability issues.[6]
- Rational PurifyPlus is a performance profiling tool for Windows, Linux, Solaris and AIX, in addition to being a memory debugger and code coverage tool.[7]
- RootCause[8] from OCSystems profiles Ada[9] and Java code.
- 'Shark is Apple's free performance analyzer for Macintosh executables. Works on x86 and power. Can use hardware perfmons.
- 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.[10]
- Tau is a comprehensive, portable, profiling and tracing tool distributed under a BSD style license that runs on most HPC platforms and supports MPI, OpenMP, pthreads, Shmem, CUDA, and OpenCL. It supports binary rewriting, automatic source instrumentation, library preloading, library interposition, kernel, and interpreter based instrumentation. It uses PAPI and supports performance evaluation of programs written in C, C++, Fortran, Java, Yorick, UPC, Chapel, and Python languages. [11]
- 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. It works for any language and the assembler. KCacheGrind, valkyrie and alleyoop are front-ends for valgrind.
- VTune Performance Analyzer is Intel Corporation's tool for call graph or analyzing a set of tuning events. It works with C/C++/Fortran/.NET/Java and other applications on Linux or Windows, but only when running on selected Intel hardware.
- ModuleAnalyzer is a tool to monitor application' performance and troubleshoot errors. Unlike most others tools, it intercepts user-mode API showing access to COM objects, files and network addresses before they are translated with gethostbyname. Module Analyzer shows which module or dll accesses the resources and if they fail or success.
- WARPP Parallel Application Simulator and Performance Toolkit, developed by the University of Warwick High Performance Systems Group for analysing the performance of high performance parallel/distributed applications
- Zoom is a graphical and command-line statistical (event-based) profiler for Linux from RotateRight. It supports most compiled languages on both PowerPC and x86 processors.
- XPerf Part of the Windows Performance Tools suite that comes with the Windows SDK, XPerf relies on the Event Tracing for Windows (ETW) infrastructure to provide rich support for symbol decoding, sample profiling and capture of call stacks on kernel events. Works on Windows Vista, Server 2008 and above versions.
Ada
- Acumem SlowSpotter and Acumem ThreadSpotter
- AdaNav sometimes bundled with ObjectAda
- NightTrace and the instrumented RedHawk Linux kernel from Concurrent Computer Corporation
- RootCause from OCSystems
C and C++
- CodeAnalyst is a free performance analyzer from Advanced Micro Devices for programs on AMD hardware. It also does basic timer-based profiling on Intel processors.
- 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.
- Visual Studio Team System Profiler is Microsoft's commercial profiler offering
- Developer Edition by Software Diagnostics is a commercial integrated recorder, profiler and debugger for dynamic analysis, integrating dynamic tracing functionalities enabling reverse debugging and full comprehension of system behavior as well as Performance Analysis functionalities over the full software life cycle.
- VTune from Intel for optimizing performance across Intel architectures.
Delphi
- SamplingProfiler is a free sampling profiler CodeGear Borland_Delphi.
Java
- AppPerfect Java Profiler see [1]
- 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.
- 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.
- RootCause from OC Systems
- Eclipse TPTP
- VisualVM is the profiler which comes with the Java Development Kit, it supports all needed features.
JavaScript
- AjaxView is a free profiling tool for JavaScript by Microsoft Research.
.NET
- CLR Profiler is a free memory profiler provided by Microsoft for CLR applications.
- JetBrains dotTrace Profiler, a commercial performance and memory profiler for .NET
- Visual Studio Team System Profiler is Microsoft's commercial profiler offering
- NProf NProf is an open source statistical profiler for .NET
- Red Gate ANTS Performance Profiler is a commercial profiler for .NET
- EQATEC Profiler is a performance profiler for .NET, .NET CF and Silverlight, free and licensed versions
- 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
PHP
See also
References
- ^ "HPCToolkit". Retrieved 30 Dec 2010.
- ^ "MyARM - Application Response Measurement tools"
- ^ New Relic homepage
- ^ "MAXAda Development Environment". Concurrent Computer Corporation. Retrieved 21 October 2010.
- ^ "Smashing performance with OProfile" by Prasanna Panchamukhi
- ^ "Shajulin Benedict, V.Petkov, M.Gerndt (2009), 'PERISCOPE: An Online-based Distributed Performance Analysis Tool'".
- ^ "Rational PurifyPlus". IBM. Retrieved 20 May 2010.
- ^ "OC Systems RootCause Pinpoints Performance Problems". OC Systems. Retrieved 21 October 2010.
- ^ "PowerAda from OC Systems". Wikibooks. Retrieved 21 October 2010.
- ^ "Profiling entire system activity with sysprof" by Ben Martin
- ^ "TAU". U. Oregon. Retrieved 14 Oct 2010.
External links
- Performance Analysis Tools, article from the Lawrence Livermore National Laboratory
- Developer Edition by Software Diagnostics