In computer science, performance analysis is the gathering of a program's performance characteristics by measuring events happening in a computer system while running the program. The output is a stream of the recorded events (called trace), or some summary information of events recorded (a profile). Statistical profilers Profilers may operate by sampling or instrumenting. A sampling profiler probes the target program's program counter at regular intervals using operating system interrupts. Sampling profiles are typically less accurate and specific, but allow the target program to run at near full speed. An instrumenting profilers equips the target program with additional instructions to collect the required information. This may cause changes in the performance of the program, leading to inaccurate results and heisenbugs. Instrumenting can potentially be very specific but slows down the target program as more specific information is collected.

Related categories 1

AQtime Pro
Profiling and memory and resource debugging toolset for 32-bit and 64-bit Java applications on MS-Windows. Site includes FAQs, case studies, technical papers, and trial download. [Commercial]
Java profiler for tracking/analyzing usage of the Java Collection Framework. Site includes documentation, demos, and download option. [Commercial]
Develop WAP applications with Java servlets and JavaServer Pages
An Article reviewing the GUI-based tool PerfAnal for analyzing the performance of applications on the JavaTM 2 Platform. By Nathan Meyers.
Eclipse Profiler Plugin
A plugin for the Eclipse platform which allows Java code profiling. [Open source, Common Public License]
Extensible Java Profiler (EJP)
A profiling tool for Java with a scalable and extensible architecture, allowing its usage for exotic programming languages that use a Java backend. [Open source, GPL]
Displays graphically statistics about the garbage collection activity during a program run. [Open Source, LGPL]
Java Performance TestClient
A tool for testing the performance of Java code by runinng a specific part of code many times by a different number of threads. It comes with a Swing GUI for graphical configuration and result representation. [Open Source, GPL]
JVMPI-based profiler with microsecond resolution and XML output. [GPL]
A set of tools that are useful in profiling and working with Java systems. The suite includes a profiler and threadalyzer, as well as tools for profiling server performance remotely. Trial version of some tools are available. [Commercial]
Helps identify excessive processor usage, memory usage, and synchronization in Java programs. Written in C++; available for Solaris and NT 4.0. The JVM must support JVMPI. [Open Source, GPL/LGPL]
jProf Viewer
Viewer for the old files created by the old java profiler (-prof). [Open source, LGPL]
An all-purpose Java profiling suite targeted at J2EE and J2SE applications. It features CPU profiling, memory profiling, thread profiling and VM telemetry information. [Commercial, trial version]
Mike's Java Profiler
A performance profiler for Java programs. It collects statistics about accumulated CPU time used by each stack frame in the profiled program and presents the collected data in a GUI. [Open source, GPL]
NetBeans Profiler
A project to provide a full-featured profiling functionality for the NetBeans IDE is presented with features, screenshots, testimonials, and documentation.
OKTECH Profiler
Low-impact sampling profiler for Java. Periodically dumps information to a file, allows analysis separately. Site includes documentation and download option. [Apache License v2, Open Source]
Reads profiling information output by Sun's heap profiler (invokable by a command-line option of the java interpreter) and displays it for easy interpretation. [Open Source, GPL]
A CPU and memory Java Profiler with J2EE/J2ME support, 64 Bit capability and IDE integration for various major Java IDEs. [Commercial, trial version]
Last update:
June 11, 2015 at 13:35:03 UTC
All Languages