List of performance analysis tools

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.

Multiple languages

The following tools work for multiple languages or binaries.

Name/Manufacturer OS Compiler/Language What It Does License
Allinea MAP[2] by Allinea Software Linux C, C++, Fortran/Fortran90 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.

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) GUI based code profiler; does only basic timer-based profiling on Intel processors. Based on OProfile.
As of Mar-2013, CodeAnalyst has been replaced by AMD CodeXL (see below).
Free/open source (GPL) or proprietary
AMD CodeXL by AMD Linux, Windows For CPU profiling: C, C++, .NET, Java (works at the executable level).
For GPU profiling and debugging: OpenCL.
A tool suite that includes both GPU and CPU profilers, as well as a GPU debugger and a static kernel analyzer. Free/open source (MIT)
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 [3] Linux, Windows Dynamic binary instrumentation framework for the development of dynamic program analysis tools. Free/open source - BSD
Dynatrace [4] 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
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)
Intel Advisor[5] 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. Proprietary. Bundled as a part of Intel Parallel Studio.
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[6] 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[7] Linux, Solaris C, C++, Fortran, Java; MPI Performance and memory profiler Free
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
Pin by Intel[8] Linux, Windows, OSX, Android Dynamic binary instrumentation system that allows users to create custom program analysis tools Proprietary but free for non-commercial use
Prism by CriticalBlue Linux, Android C/C++, Java, JavaScript Tool that dynamically traces software applications at runtime to capture data interactions between threads, data dependencies, cache analysis, along with the microprocessor pipeline Proprietary
Rational PurifyPlus AIX, Linux, Solaris, Windows Performance profiling tool, memory debugger and code coverage tool Proprietary
Scalasca [9] Linux C/C++, Fortran Parallel trace analyser Free/open source (BSD license)
Shark by Apple Mac OS X (discontinued with 10.7) Performance analyzer Free
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
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[10] Linux, Windows C, C++, Fortran, .NET, Java, Python 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[11] Windows Freeware/proprietary
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++

(see also "Multiple languages" section above)


Java

JavaScript

.NET


PHP

Python

See also

References

  1. "CodeXL". Retrieved 26 September 2013.
  2. "MAP - the C, C++ and F90 profiler for high performance and multithreaded Linux applications". Allinea.com. Retrieved 5 June 2015.
  3. "The RIO Project". Groups.csail.mit.edu. 1 December 2001. Retrieved 5 June 2015.
  4. "Intel® Advisor | Intel® Software". software.intel.com. Retrieved 2016-09-08.
  5. "Smashing performance with OProfile". Ibm.com. 16 October 2003. Retrieved 5 June 2015.
  6. "Oracle Solaris Studio 12.4: Performance Analyzer". Oracle Corporation.
  7. "Pin - A Dynamic Binary Instrumentation Tool | Intel® Developer Zone". Software.intel.com. 21 May 2013. Retrieved 5 June 2015.
  8. "Scalasca". Retrieved 26 January 2016.
  9. "Intel® VTune™ Amplifier | Intel® Software". software.intel.com. Retrieved 2016-09-08.
  10. "MSDN-the microsoft developer network". Msdn.microsoft.com. 19 May 2015. Retrieved 5 June 2015.
  11. "Runtime Analysis and Memory Error Detection for C and C++". Retrieved 26 September 2013.
  12. "GitHub - naver/pinpoint: Pinpoint is an open source APM (Application Performance Management) tool for large-scale distributed systems written in Java.". Retrieved 11 November 2016.
  13. "Plumbr". Plumbr.eu. Retrieved 29 February 2016.
  14. "Takipi". Takipi.com. Retrieved 1 March 2014.
  15. "26.4. The Python Profilers". Retrieved 26 September 2013.

External links

This article is issued from Wikipedia - version of the 11/30/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.