ZGC: The Future of Low-Latency Garbage Collection Is Here
Ғылым және технология
The Z Garbage Collector (ZGC) is a scalable low-latency garbage collector providing sub-millisecond max pause times. Get an overview of the design principles behind ZGC, how it performs, and how to best use it to reduce latency for your application. We also look at the ongoing work to make ZGC a generational garbage collector.
Presented by Erik Österlund - Oracle
Tags: #Java #OpenJDK #GC
Пікірлер: 17
Even better with playback speed 1.5x ;)
Thank you for this video and all the amazing work done on ZGC :)
Amazing job guys
Amazing work. I know GC development is fiendishly complex
👏👏 how does throughput compare now with other GCs?
@dumdumdumdum8804
Жыл бұрын
good question but if they are saying 4 times increase that means it is the best GC in terms of throughput. or may be other GCs will get some benefits from this learning.
After you jump (with jnz, etc.) to the slow path, how does the slow path know where to return to?
awesome stuff, when will it be available as part of jdk.
Is it normal that max heap size is doubled when using Generational ZGC? If I set -xmx512 my max heap size is 512MB when using ZGC, it became 1024MB if I use Generational ZGC.
Just curious, is it possible to use reference counting for those objects whose lifecycle can be determined at compile time? I think a majority of objects could be cleaned up this way including iterators, Streams etc...
@JorgetePanete
Жыл бұрын
I think the idea is reusing old objects instead of deallocating and allocating
@StefanReich
Жыл бұрын
I don't think reference counting is a good fit for the existing infrastructure
@cptfwiffo
Жыл бұрын
Why would you want to have the the overhead? If you know the lifecycle at compile time, you know when you can free the memory anyway right? Then you don't need the memory overhead to store the reference counts, nor the cpu to update them. Reference counting isn't a silver bullet...
@slr150
Жыл бұрын
@@cptfwiffo I agree with what you're saying. But may be there was some confusion as to what "reference counting" is. More specifically I meant compile-time reference counting (not runtime reference counting) For example: void foo() { var x = new StringBuilder("Hello"); x.append(", world!"); System.out.println(x.toString()); // Compiler to inject code to free x } Here the compiler needs to count the references in order to ensure that references to the new StringBuilder is limited to local variables before injecting code to free it (it could of course do more complicated analysis). My understanding is that, this is not being done by javac.
@quananhmai5701
Жыл бұрын
@@slr150 In your example x never escapes so the compiler can explode it into its components and no object is allocated at all
There is a chance to rename it to GZGC ,)