Yes, GC's internal data structures.

How much reduction there will likely vary depending on the application (and G1 region size). The type of application that will experience larger reductions are those applications that have a large number of cross G1 region references. A cache like type of application usually has a large number of these since updates to the cache introduce new references to an older or longer lived object which is likely held in a different G1 region.

On 5/6/22 4:36 PM, Stefan Reich wrote:
Ah, so the memory sections that are now smaller are basically the GC's internal data structures, rather than the general heap?

That kind of puts things in perspective. Still a great improvement. Has it been tested by how much the overall memory footprint of the JVM decreases in larger benchmarks?

On Fri, 6 May 2022 at 23:28, charlie hunt <charlie.h...@oracle.com> wrote:

    Hi Stefan,

    The graph Thomas shows in his blog is the GC part of the NMT
    output which does not include metadata.

    The GC part of NMT output includes native memory allocated on
    behalf of the GC itself such as a card table or remembered set ..
    those things that GC needs to do its work. The native memory
    allocated for the Java heap are in the "Java Heap" section of the
    NMT output. Class metadata is in the "Class" section of the NMT
    output.

    There is a "Native Memory Tracking Memory Categories" table that
    lists the sections / categories reported by NMT and a description
    of each at:
    
https://docs.oracle.com/en/java/javase/17/troubleshoot/diagnostic-tools.html#GUID-5EF7BB07-C903-4EBD-A9C2-EC0E44048D37

    hths,

    Charlie

    On 5/6/22 2:13 PM, Stefan Reich wrote:
    I'm right now just trying to get over how amazing this graph is:
    https://tschatzl.github.io/2022/03/14/jdk18-g1-parallel-gc-changes.html
    
<https://urldefense.com/v3/__https://tschatzl.github.io/2022/03/14/jdk18-g1-parallel-gc-changes.html__;!!ACWV5N9M2RV99hQ!OKRokskrYA5lROK6mWSdvn5puKnqs34LsTUVTkWX2Rp65OYC5CRMO5pthP_bsdg-msr3P2Q6ag1T55XNqMseOt88jWtWJhKP$>


    35-40% savings in memory use just by using JDK 18??? Who would
    have expected such a major improvement after 17 iterations of the
    language!

    Just so I'm sure I'm reading it correctly... the graph basically
    shows the Java heap's memory footprint in terms of committed
    native memory. Right?

    So it would include Eden, tenured generations, humongous objects,
    but not metadata and code. Is that correct?

    Basically tell me how much I should celebrate this. lol

    I did switch another small, pretty crammed (8 GB RAM) server over
    to JDK 18 and it does feel like there's a lot more memory
    available on it now and everything is a lot faster too.

    Cheers
    Stefan

-- == Gaz.AI
    
<https://urldefense.com/v3/__http://Gaz.AI__;!!ACWV5N9M2RV99hQ!OKRokskrYA5lROK6mWSdvn5puKnqs34LsTUVTkWX2Rp65OYC5CRMO5pthP_bsdg-msr3P2Q6ag1T55XNqMseOt88jWC6VYLi$>
    ==

    _______________________________________________
    hotspot-gc-use mailing list
    hotspot-gc-use@openjdk.java.net
    https://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use



--
== Gaz.AI <https://urldefense.com/v3/__http://Gaz.AI__;!!ACWV5N9M2RV99hQ!OKRokskrYA5lROK6mWSdvn5puKnqs34LsTUVTkWX2Rp65OYC5CRMO5pthP_bsdg-msr3P2Q6ag1T55XNqMseOt88jWC6VYLi$> ==
_______________________________________________
hotspot-gc-use mailing list
hotspot-gc-use@openjdk.java.net
https://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use

Reply via email to