JDK 6 Performance Update, WAS v7, Fix Pack 7, and the G1 Collector
By sunabl on Dec 14, 2009
If you have not upgraded your WebSphere application environment to JDK 6, here are the reasons that you should upgrade to the latest. You will see many improvements with performance, stability and scaleability. In addition to these benefits, Fix Pack 7 with SR6 includes the new garbage collector known as the Garbage First or G1 Collector. It is concurrent and parallel with more predictability and better useability. It splits the heap into regions and young and old generational spaces are organized in sets of regions. This eliminates the need to fine tune "NewSize/MaxNewSize". G1 also provides incremental compaction in those regions by "evacuating" the regions that are full and fragmented. To try this G1 collector, you'll need the aforementioned Fix Pack/Update and the following JVM options:
In addition, the following options can be used to adjust G1's characteristics:
To set the max GC pause time goal in milliseconds that G1 will attempt to meet:
- To set the time interval over which GC pauses totaling up to MaxGCPauseMillis may take place:
For more information about G1 (how it operates, more options, etc.) see Java HotSpot Garbage Collection.
- Jon Masamitsu's Blog Entry on Sun HotSpot Garbage Collectors
- JavaOne 2008 (TS-5419) The Garbage-First Garbage Collector
- G1: Java's Garbage First Garbage Collector by Eric J. Bruno, Dr. Dobb's Journal
- Lock Coarsening (on by default. -XX:+EliminateLocks): Reduce lock overhead by broadening an existing synchronized block; Eliminates the unlock and re-lock operations in where pattern exists
- Lock Elision through Escape Analysis (-XX:+DoEscapeAnalysis): Locally referenced object's synchronized block is thread local; Can omit the lock because it is uncontended
- Biased Locking (on by default. -XX:+UseBiasedLocking): Keep the lease of a lock to the thread that created it until another thread contends it.