Sunはパフォーマンスの改善に強く重点をおいたJava 6 update 18をリリースした。このリリースには新しいバージョンのHotspot(16.0)、起動速度の改善、UIアプリケーションの実行速度の改善が含まれる。さらに、357個のバグフィックスに加えて、Ubuntu 8.04、Red Hat Enterprise Linux 5.3、Windows 7のサポートも含まれている。
エンタープライズ開発者にとって特に興味深いのは、Java 7から前倒しで導入されたガベージコレクタに関する改善だ。Garbage-First(G1)ガベージコレクタ(OpenJDK 7ではもはや実験的とタグづけされていない) が信頼性とパフォーマンスを改善し、Parallel Scavengerガベージコレクタは改善されたNUMA (Non Uniform Memory Access)サポートが含まれるようになった。 現代のコンピュータの多くはNUMAアーキテクチャ、すなわちメモリの異なる部分にアクセスするためにかかる時間が異なるアーキテクチャ、をベースにしている。Java Hotspot VMにおいてNUMAアーキテクチャを識別できるアロケータが実装され、Javaアプリケーションに対する自動的なメモリ配置最適化を提供するようになった。典型的なシステムにおいて、システム内の各プロセッサは低いアクセス待ち時間と広い帯域幅を持つローカルメモリとそれに比べるとアクセスがかなり遅いリモートメモリを持っている。NUMAアーキテクチャを識別できるアロケータはSolaris(9u2以上)とLinux(カーネルバージョン2.6.19以上、glibcバージョン2.6.1以上)の2つのオペレーティングシステム上で実装されていてParallel Scavengerガベージコレクタに対して -XX:+UseNUMAフラグで有効化することが可能である。Parallel Scavengerはいくつかのマシンクラスではデフォルトのままになっていて -XX:+UseParallelGCオプションで明示的に指定して有効化することもできる。この変更のインパクトは大きい:SPEC JBB 2005ベンチマークを8チップOpteronマシンで評価した際、NUMAを識別できるシステムは30%(32-bitにおいて)から40%(64-bitにおいて)のパフォーマンスが改善された。
update 18における改善は他にもあり、共通文字列結合パターンの最適化や整数基本型の間での不必要な変換の削除などのコード生成の改善がもたらされていることに加え、完全なガベージコレクションの前後におけるヒープダンプあるいはクラスヒストグラムを要求する新しいオプションが追加されている。残念なことにupdate 14において有効化されたエスケープ解析ベースの最適化はupdate 18ではいったん無効化されているが、またいつか有効化されるだろう。
Sunは引き続きデスクトップとRIAマーケットにフォーカスしており、デスクトップアプリケーションやWeb Startのパフォーマンスの改善が多く見られる - それは次のようなものだ:
- クライアント、サーバそれぞれのVMにおける新しい既定のjavaヒープ設定を含む、さらなるガベージコレクションの改善。
- より高速な起動のためのクラスローディングの最適化。
- Direct 3Dが使われるシステムにおいて約100-200msの短縮を含むアプリケーション起動方法の変更。
- FXランタイムの事前検証サポートの変更。これにより。JavaFXアプリケーションのウォームスタートが最大15%高速化している。
- Web Startアプリケーションとアプレットでのjarの並行ダウンロード。
- Java Web Startをアップデートして、JSR-056バージョン6.0.18を実装しかなりのキーのバグフィックスを行ったこと。(6888118, 6800992, 6863499)
update 18には他にも次のような改善が含まれている:
- jarファイル生成に必要な時間が20%削減。
- JavaDBがバージョン10.5.3にアップデートされたこと。
- VisualVMがバージョン1.2.1にアップデートされたこと。
- StaX (Streaming API for XML)に対するマイナーアップデート。
今回のリリースには、セキュリティ関連の修正はないが、次のセキュリティ関連のアップデートがこの四半期のうちに行われるものと期待されている。