<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Shenandoah on Devops Monk</title><link>https://devops-monk.com/tags/shenandoah/</link><description>Recent content in Shenandoah on Devops Monk</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 10 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://devops-monk.com/tags/shenandoah/index.xml" rel="self" type="application/rss+xml"/><item><title>Generational Shenandoah (JEP 516): Best GC for Low Latency</title><link>https://devops-monk.com/tutorials/java25/generational-shenandoah/</link><pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate><guid>https://devops-monk.com/tutorials/java25/generational-shenandoah/</guid><description>GC Background: Why Generations Matter The Generational Hypothesis is the foundation of most modern GC design:
Most objects die young.
In a typical Java application, the vast majority of objects are short-lived: request/response objects, DTOs, builder instances, stream pipeline intermediates. They are created, used briefly, and then immediately eligible for collection.
A GC that knows about this pattern can be far more efficient than one that treats all objects equally:</description></item></channel></rss>