Javaのランタイムコアrt.jarの内訳

JREのコアになるrt.jarが、Javaのバージョンアップと共にどんどん大きくなってることに気付きました。

JRE 1.4.2の時点でrt.jarは22MBなんですが、1.5.0になると33MB、1.6.0だと42MBに増えています。

その内訳がどうなっているのか、HDD使用状況分析ツールのOverDiskで調べてみました。JRE 1.6.0_05付属のrt.jarを展開して、そのディレクトリ階層を表示した結果が以下です。

主要なパッケージのサイズは以下のようになりました。

com.sun.* 17.1MB
- com.sun.org.apache.* 6.8MB
- com.sun.xml.* 4.0MB
- com.sun.corba.* 2.3MB
sun.* 8.9MB
javax.* 6.5MB
- javax.swing.* 4.4MB
java.* 4.6MB
- java.util.* 1.2MB
- java.awt.* 1.3MB

com.sun.org.apache内にはXalanとかXercesとか入ってるんですけど、これって本当にランタイムコアに必要なのか疑問。あとcom.sun.corba辺りも。

もし、JREのコアサイズがJVMの起動時間に影響を与えるとするなら、この肥大化したrt.jarは、Sunのクライアントサイド軽視を象徴する存在にも思えます。

サーバでは(少なくとも運用フェーズでは)JVMの起動時間を無視できても、Swingアプリとしては大問題なんですよね。