This is a list of
performance analysis tools for use in
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development inv ...
.
General purpose, language independent
The following tools work based on log files that can be generated from various systems.
*
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.
*timem (Unix) - can be used to determine the wall-clock time, CPU time, and CPU utilization similar to
time (Unix) but supports numerous extensions.
** Supports reporting peak
resident set size
In computing, resident set size (RSS) is the portion of memory occupied by a process that is held in main memory (RAM). The rest of the occupied memory exists in the swap space or file system, either because some parts of the occupied memory were ...
, major and minor page faults, priority and voluntary context switches via getrusage.
** Supports sampling
procfs
The proc filesystem (procfs) is a special filesystem in Unix-like operating systems that presents information about processes and other system information in a hierarchical file-like structure, providing a more convenient and standardized meth ...
on supporting systems to report metrics such as page-based
resident set size
In computing, resident set size (RSS) is the portion of memory occupied by a process that is held in main memory (RAM). The rest of the occupied memory exists in the swap space or file system, either because some parts of the occupied memory were ...
, virtual memory size, read-bytes, and write-bytes, etc.
** Supports collecting hardware counters when built with
PAPI support.
Multiple languages
The following tools work for multiple languages or binaries.
C and C++
*
Arm MAP
Arm MAP, is an application profiler produced by Allinea Software now part of Arm. of Warwick, United Kingdom, for profiling the performance of C, C++, Fortran 90 and Python software. It is widely used for its multithreaded and multiprocess capab ...
, a performance profiler supporting Linux platforms.
*
AppDynamics
AppDynamics is a full-stack application performance management (APM) and IT operations analytics (ITOA) company based in San Francisco. The company focuses on managing the performance and availability of applications across cloud computing env ...
, an application performance management solution for C/C++ applications via SDK.
*
AQtime Pro, a performance profiler and memory allocation debugger that can be integrated into Microsoft Visual Studio, and Embarcadero RAD Studio, or can run as a stand-alone application.
*
IBM Rational Purify was a memory debugger allowing performance analysis.
*
Instruments
Instrument may refer to:
Science and technology
* Flight instruments, the devices used to measure the speed, altitude, and pertinent flight angles of various kinds of aircraft
* Laboratory equipment, the measuring tools used in a scientific l ...
(bundled with Xcode) is used to profile an executable's memory allocations, time usage, filesystem activity, GPU activity etc.
*
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
Visual Studio Team System Profiler is a commercial profiler offered by Microsoft, available as part of the Visual Studio Team System (VSTS) suite and the Development Edition of Visual Studio. It can work either in '' sampling mode'', in which ...
, commercial profiler by Microsoft.
Java
*
inspectIT
inspectIT is an open-source application performance management (APM) tool, which enables the diagnosis, analysis and monitoring of Java applications. inspectIT is developed by NovaTec Consulting GmbH, an IT consulting company from Stuttgart (Germ ...
is an open-source
application performance management
In the fields of information technology and systems management, application performance management (APM) is the monitoring and management of the performance and availability of software applications. APM strives to detect and diagnose complex appli ...
(APM) solution for monitoring and analyzing software applications, available under the
Apache License, Version 2.0 (ALv2).
*
JConsole JConsole is a graphical monitoring tool to monitor Java Virtual Machine (JVM) and Java applications both on a local or remote machine.
JConsole uses underlying features of Java Virtual Machine to provide information on performance and resource cons ...
is the profiler which comes with the
Java Development Kit
The Java Development Kit (JDK) is a distribution of Java Technology by Oracle Corporation. It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java ...
*
JProfiler
JProfiler is a commercially licensed Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6&nb ...
*
JRockit Mission Control
JRockit was a proprietary Java virtual machine (JVM) originally developed by Appeal Virtual Machines, acquired by BEA Systems in 2002, and became part of Oracle Fusion Middleware as part of acquisition of BEA Systems in 2008.
The JRockit code ba ...
, a profiler with low overhead.
*
Netbeans Profiler, a profiler integrated into the
NetBeans
NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java ...
IDE (internally uses
jvisualvm profiler)
*
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.
*
OverOps
OverOps is a software analytics company based in San Francisco, CA and Tel Aviv, Israel. The company develops a static and dynamic code analysis technology to analyze code events in real time. The technology's focus is large-scale Java and Scala ...
, Continuous reliability for the modern software supply chain, automatically detect and deliver root cause automation for all errors.
*
VisualVM is a visual tool integrating several commandline JDK tools and lightweight profiling capabilities. It is bundled with the
Java Development Kit
The Java Development Kit (JDK) is a distribution of Java Technology by Oracle Corporation. It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java ...
since version 6, update 7.
*
FusionReactor, Java application performance monitoring - low overhead, production grade tools for production debugging, code profiling, memory and thread analysis
JavaScript
* The
Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current and ...
web browser's developer tools contain a Performance tool, which gives insight into JavaScript performance of a website.
*
Microsoft Visual Studio AJAX Profiling Extensions is a free profiling tool for
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
by
Microsoft Research
Microsoft Research (MSR) is the research subsidiary of Microsoft. It was created in 1991 by Richard Rashid, Bill Gates and Nathan Myhrvold with the intent to advance state-of-the-art computing and solve difficult world problems through technologi ...
.
.NET
*
CLR Profiler
CLR Profiler is a free and open-source memory profiler for the .NET Framework from Microsoft. It allows the user to investigate the contents of the managed heap, the behavior of the garbage collector, and the allocation patterns (including call-gr ...
is a free memory profiler provided by Microsoft for
CLR applications.
*
GlowCode
GlowCode is a performance and memory/resource profiler developed by Electric Software Inc.
Overview
GlowCode is used by software developers to analyze and optimize application performance, speed and resource use. GlowCode capabilities include ...
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
Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such ...
PHP
*
BlackFire.io
*
Dbg
*
Xdebug is a
PHP
PHP is a General-purpose programming language, general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementati ...
extension which provides debugging and profiling capabilities.
See also
*
Performance analysis
*
Memory debugger (includes list of memory profilers)
References
External links
Performance Analysis Tools article from the
Lawrence Livermore National Laboratory
Lawrence Livermore National Laboratory (LLNL) is a federal research facility in Livermore, California, United States. The lab was originally established as the University of California Radiation Laboratory, Livermore Branch in 1952 in response ...
{{DEFAULTSORT:Performance analysis tool
Computing-related lists
Programming tools
Network performance
*
Software optimization
Software performance management