Archive | JVM


Understanding JVM Garbage Collection – Part 4

JVM GC Jargon The jargon used to describe GC algorithms can get confusing. This section describes commonly used terms and their meaning. Live set – The number of live objects in a heap. The live set determines the amount of work and GC pause times for the garbage collector. Modern GC’s are able to de-link […]

Continue Reading

Understanding JVM Garbage Collection – Part 3

Weak Generational Hypothesis The weak generational hypothesis has had a profound impact on the JVM’s heaps layout. Understanding the weak generational hypothesis is essential in order to understand various GC algorithms and approaches. The Weak Generational Hypothesis states that most objects die young. In other words, most objects created will be garbage collected very quickly. […]

Continue Reading

Understanding JVM Garbage Collection – Part 2

GC Mark, Sweep, and Compact Basics The Mark and Sweep algorithm is the basis for garbage collection in Java. Although the actual algorithms used by the JVM are considerably more complex, the mark and sweep algorithm forms the basis of garbage collection in the JVM and must be understood. As you might have guessed, there […]

Continue Reading

Understanding JVM Garbage Collection – Part 1

Java is a popular language for business and enterprise computing. Java and the JVM have enjoyed enormous success over the last two decades. Java was initially considered a slow language (late 90’s). That changed with the introduction of the HotSpot virtual machine in April 99. HotSpot improved performance via “just in time” compilation and adaptive optimisation. Since […]

Continue Reading