This is a list of performance analysis tools for use in software development.
General purpose, language independent
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.
The following tools work for multiple languages or binaries.
C and C++
- 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.
- 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 is Microsoft's commercial profiler
- 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 for monitoring and analyzing software applications, available under the Apache License, Version 2.0 (ALv2).
- jClarity has Censum and illuminate which use machine learning at the heart of their application performance management (APM) solutions for monitoring and analyzing software applications.
- JConsole is the profiler which comes with the Java Development Kit
- JRockit Mission Control, a profiler with low overhead.
- Netbeans Profiler, a profiler integrated into the NetBeans IDE (internally uses jvisualvm profiler)
- Pinpoint is an open source APM (Application Performance Management) tool for large-scale distributed systems written in Java.
- 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.
- Takipi, production debugging, profiling and exceptions tracking.
- 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.
- 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
- Xdebug is a PHP extension which provides debugging and profiling capabilities.
- Performance analysis
- Memory debugger (includes list of memory profilers)
- Performance Analysis Tools, article from the Lawrence Livermore National Laboratory