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.
More information
More information
Related categories 1
Sites 12
An Article reviewing the GUI-based tool PerfAnal for analyzing the performance of applications on the JavaTM 2 Platform. By Nathan Meyers.
A plugin for the Eclipse platform which allows Java code profiling. [Open source, Common Public License]
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]
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]
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]
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]
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]
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]
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]
A plugin for the Eclipse platform which allows Java code profiling. [Open source, Common Public License]
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]
An Article reviewing the GUI-based tool PerfAnal for analyzing the performance of applications on the JavaTM 2 Platform. By Nathan Meyers.
JVMPI-based profiler with microsecond resolution and XML output. [GPL]
Viewer for the old files created by the old java profiler (-prof). [Open source, LGPL]
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]
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]
Displays graphically statistics about the garbage collection activity during a program run. [Open Source, LGPL]
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]
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 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]
