Code: Select all
-XX:+UseCompactObjectHeaders
Befolgen Sie die Ratschläge in den Kommentaren.
Code: Select all
import java.util.List;
import org.openjdk.jol.info.GraphLayout;
public class JOLJdk25Test
{
public enum Generation
{
GREATEST("Greatest Generation", 1901, 1927),
SILENT("Silent Generation", 1928, 1945),
BOOMER("Baby Boomers", 1946, 1964),
X("Generation X", 1965, 1980),
MILLENNIAL("Millennials", 1981, 1996),
Z("Generation Z", 1997, 2012),
ALPHA("Generation Alpha", 2013, 2029);
private final String name;
private final YearRange years;
Generation(String name, int from, int to)
{
this.name = name;
this.years = new YearRange(from, to);
}
}
public record YearRange(int from, int to){};
public static void main(String[] args)
{
List generations =
List.of(Generation.values());
System.out.println(
GraphLayout.parseInstance(generations).toFootprint());
}
}
Code: Select all
JDK 25 Default:
java.util.ImmutableCollections$ListN@4eec7777d footprint:
COUNT AVG SUM DESCRIPTION
7 32 224 JOLJdk25Test$Generation
7 24 168 JOLJdk25Test$YearRange
14 29 416 [B
1 48 48 [Ljava.lang.Object;
14 24 336 java.lang.String
1 24 24 java.util.ImmutableCollections$ListN
44 1216 (total)
JDK 25 Compact Object Headers:
java.util.ImmutableCollections$ListN@4eec7777d footprint:
COUNT AVG SUM DESCRIPTION
7 32 224 JOLJdk25Test$Generation
7 16 112 JOLJdk25Test$YearRange
14 24 344 [B
1 40 40 [Ljava.lang.Object;
14 24 336 java.lang.String
1 16 16 java.util.ImmutableCollections$ListN
44 1072 (total)
Code: Select all
-Djol.magicFieldOffset=true