GlowCode
   HOME

TheInfoList



OR:

This is a list of performance analysis tools for use in
software development Software development is the process of designing and Implementation, implementing a software solution to Computer user satisfaction, satisfy a User (computing), user. The process is more encompassing than Computer programming, programming, wri ...
.


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 (measured in kilobytes) occupied by a process that is held in main memory Computer data storage or digital data storage is a technology consisting of computer components and ...
, 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 metho ...
on supporting systems to report metrics such as page-based
resident set size In computing, resident set size (RSS) is the portion of memory (measured in kilobytes) occupied by a process that is held in main memory Computer data storage or digital data storage is a technology consisting of computer components and ...
, 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, 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 envir ...
, an application performance management service 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 PurifyPlus is a memory debugger program used by software developers to detect memory access errors in programs, especially those written in C (programming language), C or C++. It was originally written by Reed Hastings of Pure Software.
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 lab ...
(bundled with Xcode) is used to profile an executable's memory allocations, time usage, filesystem activity, GPU activity etc. *
Intel Parallel Studio Intel Parallel Studio XE was a software development product developed by Intel that facilitated native code development on Windows, macOS and Linux in C++ and Fortran for parallel computing. Parallel programming enables software programs to take ...
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, commercial profiler by Microsoft.


Java

* inspectIT 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) service for monitoring and analyzing software applications, available under the
Apache License The Apache License is a permissive free software license written by the Apache Software Foundation (ASF). It allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software ...
, Version 2.0 (ALv2). * JConsole 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 * JRockit Mission Control, a profiler with low overhead. * Netbeans Profiler, a profiler integrated into the
NetBeans NetBeans is an integrated development environment (IDE) for Java (programming language), Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Microsoft Windows, Windows, ...
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, 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 curr ...
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 and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
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 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 Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development ...


PHP

* BlackFire.io * Dbg * Xdebug is a
PHP PHP is a general-purpose scripting language geared towards web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by the PHP Group. ...
extension which provides debugging and profiling capabilities.


See also

* Performance analysis *
Memory debugger A memory debugger is a debugger for finding software memory problems such as memory leaks and buffer overflows. These are due to bugs related to the allocation and deallocation of dynamic memory. Programs written in languages that have garba ...
(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 Federally funded research and development centers, federally funded research and development center in Livermore, California, United States. Originally established in 1952, the laboratory now i ...
{{DEFAULTSORT:Performance analysis tool Computing-related lists Programming tools Network performance * Software optimization Software performance management