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アプリとしては大問題なんですよね。