List of performance analysis tools
From Wikipedia, the free encyclopedia
|
|
This article needs additional citations for verification. (November 2011) |
|
|
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.
Contents |
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. 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.
Multiple languages [edit]
The following tools work for multiple languages or binaries.
| Name/Manufacturer | OS | Compiler/Language | What It Does | License |
|---|---|---|---|---|
| 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 | AMD, Intel hardware x86 based machines | Linux, Windows | GUI based code profiler; does only basic timer-based profiling on Intel processors. Based on OProfile. | Free/open source (GPL) or proprietary |
| Caliper by HP | HP-UX with Intel Itanium Integrity platform (IA-64). | Profiling tool | ||
| 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[1] | Linux (any distribution, kernel 2.6+), Sun Solaris, HP-UX, AIX, MacOS X 10.7 +, MS Windows Server 2003, 2008 | .NET, Java and PHP (for web sites and desktop software) | Application Performance Management | Proprietary |
| dynaTrace by Compuware[2] | .NET, Java, AJAX (for web sites) | 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[3] | Linux | Any compiled language (C, C++, Fortran, etc.), python (cProfile) compatibility | Performance (sampling) and memory (heap, leaks, total dynamic allocations) profiler, plus dynamic binary instrumentation. Text and navigable webpage output with full call graphs. | GPL |
| Linux Trace Toolkit | 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. | |
| LTProf[4] | Windows | Visual C++, Borland CBuilder, Delphi and VB applications | CPU profiling tool | |
| LTTng (Linux Trace Toolkit Next Generation) | Linux | System software package for correlated tracing of kernel, applications and libraries | ||
| OProfile[5] | 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[6] | Linux, Solaris | C, C++, Fortran, Java; MPI | Performance and memory profiler | |
| Paraver | Linux, Mac OS X, Windows [7] | 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) |
| PGPROF by The Portland Group | Linux, MacOS 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 counters as Linux' OProfile. | ||
| perf tools | Linux kernel 2.6.31+ | Sampling profiler | ||
| Performance Application Programming Interface (PAPI) | Various | Library for hardware performance counters on modern microprocessors | ||
| Pin by Intel[8] | Linux, Windows | Dynamic binary instrumentation system that allows users to create custom program analysis tools | Proprietary but free for non-commercial use | |
| pprof, part of gperftools[9] by Google | Sampling profiler with context-sensitive call graph capability. | |||
| Rational PurifyPlus | AIX, Linux, Solaris, Windows | Performance profiling tool, memory debugger and code coverage tool | Proprietary | |
| Shark by Apple | Mac OS X (discontinued with 10.7) | Performance analyzer | Free | |
| Shiny[10] | Cross-platform | C, C++, Lua | Performance analyzer with call graphs and time allocations | Free/open source (MIT license) |
| SlowSpotter and ThreadSpotter by Acumem | Linux, Solaris | Most compiled languages including Ada | Diagnose performance problems related to data locality, cache utilization and thread interactions. | |
| 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.[11] | ||
| 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. | ||
| Valgrind | Linux | 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++, 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[12] | Windows | Freeware/proprietary | ||
| RotateRight Zoom | Linux | Supports most compiled languages on ARM and x86 processors. | Graphical and command-line statistical (event-based) profiler |
Ada [edit]
- 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]
- 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.
- CodeTune[13] is a free, easy to use, GUI-based profiler for Windows applications
- Embedded Profiler[14] 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.
- Parasoft Insure++[15] Provides a graphical tool that displays and animates memory allocations in real time to expose memory blowout, fragmentation, overuse, bottlenecks and leaks.
- Proffy[16] For Windows, includes a C++ header and produces call graphs.
- Very Sleepy,[17] 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
(see also "Multiple languages" section above)
Delphi [edit]
- SamplingProfiler is a free sampling profiler CodeGear Borland_Delphi.
Java [edit]
- 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.
- Eclipse TPTP
- inspectIT - free performance diagnostics tool with very small overhead.
- 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 and RTI from OC Systems
- VisualVM is the profiler which comes with the Java Development Kit, it supports all needed features.
JavaScript [edit]
- 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[18] for Node.js
- Microsoft Visual Studio AJAX Profiling Extensions is a free profiling tool for JavaScript by Microsoft Research.
.NET [edit]
- 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 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[19]
- Red Gate ANTS Performance Profiler is a commercial profiler for .NET
- Scitech .NET Memory Profiler[20] - proprietary
- 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 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.[21]
Oracle Database [edit]
- 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.
- Lightprofiler is a freeware suite of utilities for manipulating Oracle SQL trace files.
PHP [edit]
See also [edit]
- Performance analysis
- Memory debugger (includes list of memory profilers)
References [edit]
- ^ http://www.lucierna.com/products-application-performance-management-apm/
- ^ https://www.compuware.com/application-performance-management/dynatrace-enterprise.html
- ^ http://www.igprof.org
- ^ http://www.lw-tech.com
- ^ "Smashing performance with OProfile" by Prasanna Panchamukhi
- ^ "Oracle Solaris Studio 12.3: Performance Analyzer". Oracle Corporation. Retrieved 2010-09-11.
- ^ http://www.bsc.es/computer-sciences/performance-tools/downloads
- ^ "Pin: building customized program analysis tools with dynamic instrumentation"
- ^ http://code.google.com/p/gperftools/
- ^ http://code.google.com/p/shinyprofiler/
- ^ "Profiling entire system activity with sysprof" by Ben Martin
- ^ http://msdn.microsoft.com/en-us/performance/default.aspx
- ^ http://www.thewallsoft.com/codetune/
- ^ http://www.embeddedprofiler.com/
- ^ http://www.parasoft.com/jsp/products/insure.jsp?itemId=63
- ^ http://www.pauldoo.com/proffy/
- ^ http://www.codersnotes.com/sleepy
- ^ http://nodetime.com/
- ^ http://code.google.com/p/nprof/
- ^ http://memprofiler.com/
- ^ http://insightprofiler.productivity-boost.com/
External links [edit]
- Performance Analysis Tools, article from the Lawrence Livermore National Laboratory