Skip to content
0:00 / 0:00

#garbagecollection#jvm#giltene

Understanding Java Garbage Collection and What You Can Do About It

ZDigital Marketing

214 subscribers • 1 video on Hallway

YouTube
  • Recommended by 1 person: 1 in engineering communities.
  • Presented by Gil Tene, CTO of Azul Systems

Intermediate. Assumes working knowledge.

10K views12 years ago1 recommendation

Systems programmingProgramming languagesJava and the JVMPerformance and optimizationConcurrency and parallelism

Gil Tene explains how JVM garbage collection mechanisms work, classifying major collectors and discussing trade-offs between responsiveness, throughput, and memory.

From December 2013, Azul Systems CTO Gil Tene. Garbage collection is an integral but often misunderstood part of application behavior on Java platforms. As such, it is important for Java developers to understand how collector mechanisms work. This presentation reviews and classifies the major garbage collectors available in JVMs today. Following an overview of common garbage collection techniques such as generational, parallel, stop-the-world, incremental, and concurrent algorithms, it defines terms and metrics common to all collectors. It also discusses trade-offs in balancing requirements for responsiveness, throughput, space, and available memory and covers some pitfalls, common misconceptions, and garbage collection behavior myths.

Why it's here

1 person recommends this

What people say. Recommended as an eye-opening explanation of JVM garbage collection behavior and latency issues.

u/dsign2819in r/haskell • Recommends

On “GHC cannot achieve low latency with a large working set”

I'm sorry to see this issue bite you, and as a fellow Haskell programmer I understand and to some point share your predicament. But this an old issue, and it is not even a Haskell issue. See for example the same problem happening in Java Virtual Machines (this presentation by the way was quite an eye-opener for me on the issue): link to this video There are likely some workarounds. For example, maybe it is possible to remove large buffers from Haskell's GC control using the FFI API. Or wait for the sanctioned compact regions patch.