Wurde Java -Objektlayout (JOL) überprüft, um mit den Aktivitäten von Java 25 und kompakten Objekt -Headern zu arbeiten?Java

Java-Forum
Anonymous
 Wurde Java -Objektlayout (JOL) überprüft, um mit den Aktivitäten von Java 25 und kompakten Objekt -Headern zu arbeiten?

Post by Anonymous »

Java 25 wurde am 16. September 2025 veröffentlicht und enthielt JEP 519 mit Compact -Objekt -Headern (COH). Die neueste Version von JOL (0.17) wurde im Februar 2023 veröffentlicht. Ich würde gerne wissen, ob die Ausgabe bei der Verwendung von Jol mit JAVA 25 und COH aktiviert ist.

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());
}
}
Im Folgenden sind die Ergebnisse angezeigt. Ich sehe die Hauptmethode mit Vanille -Java 25 und Java 25 mit aktivierenden kompakten Objekt -Headern aus.

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)
Die Datensatz -Jahresabrechnung Instanzen unterscheiden sich jeweils um 8 Bytes. Die ImmutableCollections $ listn unterscheiden sich ebenfalls um 8 Bytes. Das [B , von dem ich glaube, dass das Byte -Array in der String unterschiedlich ist, aber nicht genau der Wert, den ich erwartet habe. Das folgende JVM -Flag einstellen muss: < /p>

Code: Select all

-Djol.magicFieldOffset=true

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post