ホーム > 製品情報 > SophiaCompress(Java) OASIS > 内部ロジック > - 7 -

SophiaCompress(Java) OASIS 内部ロジック

コンスタントプールエントリの共有

コンスタントプールに含まる「メソッド名」、「フィールド名」、「クラス名」をコンスタントプールの必須エントリ名と共有することで、コンスタントプールを削減できます。

フィールド/メソッド名の共有/短縮

必須エントリである文字列をフィールド / メソッド名にすると、コンスタントプールエントリがひとつ減ります。この過程を「共有」と呼びます。

共有」できなかったフィールド / メソッドは、名前を短くすることでコンスタントプールのサイズを削減できます。

文字列がコンスタントプールの必須エントリとなる例

クラス名の短縮

クラス名についても、フィールド / メソッド名と同様にコンスタントプールの文字列定数として含まれるので、共有・短縮によりサイズ圧縮が見込めます。

ただし、クラス名はファイル名になります。ファイル名は JAR 圧縮の対象なので、名前の短縮を優先させる方が効果的です。