Sun Releases Java 6 Update 18 With Significant Performance Improvements and Windows 7 Support
Sun have released Java 6 update 18 with a strong emphasis on performance improvements, including a new version of Hotspot (16.0), start-up improvements and run-time improvements for UI applications. The release also includes support for Ubuntu 8.04, Red Hat Enterprise Linux 5.3 and Windows 7, along with an impressive 357 bug fixes.
Of particular interest to enterprise developers are the improvements to the garbage collectors that have been brought forward from Java 7. The Garbage First (G1) garbage collector (no longer tagged as experimental in OpenJDK 7) gains improved reliability and performance, and the Parallel Scavenger garbage collector gets the inclusion of Improved NUMA (Non Uniform Memory Access) Support. Most modern computers are based on NUMA architecture, in which it takes different amounts of time to access different parts of memory. In the Java HotSpot VM, the NUMA-aware allocator has been implemented to provide automatic memory placement optimisations for Java applications. Typically, every processor in the system has a local memory that provides low access latency and high bandwidth, and remote memory that is considerably slower to access. The NUMA-aware allocator is implemented for Solaris (>= 9u2) and Linux (kernel >= 2.6.19, glibc >= 2.6.1) operating systems, and can be turned on for the Parallel Scavenger garbage collector with the -XX:+UseNUMA flag. Parallel Scavenger remains the default for a server-class machine and can also be turned on explicitly by specifying the -XX:+UseParallelGC option. The impact of the change is significant: When evaluated against the SPEC JBB 2005 benchmark on an 8 chip Opteron machine, NUMA-aware systems gave about a 30% (for 32-bit) to 40% (for 64-bit) increase in performance.
Other Hotspot changes in update 18 include code generation improvements, such as the optimisation of common string concatenation patterns and the removal of needless conversions between integer primitive types, plus new options to request a heap dump or class histogram before or after a full garbage collection. Unfortunately escape analysis-based optimisation, which was enabled in update 14, has been disabled again in update 18 to be re-instated at some future date.
Sun's continued focus on the desktop and RIA markets sees a number of improvements to the performance of desktop applications and Web Start - amongst them:
- More garbage collection improvements, including new default java heap configuration in client and server VMs.
- Classloading optimisations for faster startup.
- Application start-up changes include savings of around 100-200ms on systems where Direct 3D is used.
- Revised support for pre-verification of FX runtime, which can speed up warm start of a JavaFX application by up to 15%.
- Concurrent download of jars for Web Start applications and applets.
- Java Web Start updated to implement JSR-056 version 6.0.18 and gets a number of key bug fixes (6888118, 6800992, 6863499)
Other changes in update 18 include:
- A 20% reduction in the amount of time needed to create jar files.
- JavaDB has been updated to version 10.5.3
- VisualVM has been updated to 1.2.1
- Minor updates to StaX (Streaming API for XML).
There are no security related fixes in this release, but the next security-related update is expected this quarter.
Re: Sun have released Java 7 update 18
This was a typo, and has been fixed - it was supposed to say 'Java 6 update 18'. We're still a little ways off from Java 7 update 18. ;)
Chief Editor, InfoQ.com
Unfortunately escape analysis-based optimisation, which was enabled in update 14, has been disabled again in update 18 to be re-instated at some future date
Some more info on that would be nice
Re: escape analysis
Note that Escape analysis-based optimization (-XX:+DoEscapeAnalysis) is disabled in 6u18. This option will be restored in a future Java SE 6 update
and because of the merger activity Sun isn't currently allowed to talk to the press.