Saturday, September 25, 2010

2010-09-25 Saturday - Java Performance Tuning

I'm doing some micro-benchmarking this weekend on various tuning techniques for a major distributed Java EE 6 application.  This posting is a collection of interesting resources that I've come across:


Chuk-Munn Lee of Sun Microsystems Troubleshoots Java SE 6 Deployment

Performance Tuning and JVM Parameters...

Java SE Performance at a Glance  [new portal for Java Performance information]

Java Performance Documentation

A Collection of JVM Options (compiled by Joseph D. Mocker)

Java HotSpot VM Options

G1: Java's Garbage First Garbage Collector;jsessionid=JA2FP4T4VEQ23QE1GHPCKHWATMY32JVN


Eclipse Memory Analyzer (MAT)

jps - Java Virtual Machine Process Status Tool

HAT -- The Java Heap Analysis Tool, Bill Foote
(note: JHAT has replaced HAT)

Tools: Use HProf For Quick and Dirty Profiling Assistance
NetBeans > Profiler
(The profiler is included in all Java distributions of the IDE)

NetBeans > Profiler > HeapWalker

"VisualVM is a visual tool integrating several commandline JDK tools and lightweight profiling capabilities. Designed for both production and development time use, it further enhances the capability of monitoring and performance analysis for the Java SE platform."

"VisualVM is available in two distributions: VisualVM available at and Java VisualVM available as a JDK tool in Oracle/Sun JDK distributions starting from JDK 6 update 7 and Apple's Java for Mac OS X 10.5 Update 4"

Documentation > Java Profiler 9.0 > Help > Memory profiling > Support of HPROF format snapshots

Documentation > Java Profiler 9.0 > Help > Memory profiling > Support of HPROF format snapshots


Caliper is Google's open-source framework for writing, running and viewing the results of JavaMicrobenchmarks.

Project Dalvik
Code and documentation from Android's VM team
Google Android Benchmarks

Application Design...


The Google Collections Library

The Final Performance Testing Example, by Bruce Eckel

Adroid Developers > Designing for Performance

Chameleon: Adaptive Selection of Collections
Ohad Shacham, Tel Aviv University
Martin Vechev, IBM Research
Eran Yahav, IBM Research


The JavaTM Virtual Machine Specification, Second Edition

No comments: