<story><title>Java 12</title><url>https://jdk.java.net/12/</url></story><parent_chain><item><author>stefan_</author><text>Their lower end target is 10 ms. In a game, 16 ms is your entire time budget.</text></item><item><author>_bxg1</author><text>GC pauses have been one of the major barriers to using garbage collected (read: higher-level) languages for game development. This could open up the JVM for games, which could have some exciting implications.</text></item><item><author>azhenley</author><text>The most interesting new feature I think is the Shenandoah GC. The summary from [1]:&lt;p&gt;&amp;quot;Add a new garbage collection (GC) algorithm named Shenandoah which reduces GC pause times by doing evacuation work concurrently with the running Java threads. Pause times with Shenandoah are independent of heap size, meaning you will have the same consistent pause times whether your heap is 200 MB or 200 GB.&amp;quot;&lt;p&gt;The original algorithm was published in 2016 [2]. It consists of 4 phases: initial marking, concurrent marking, final marking, and concurrent compaction.&lt;p&gt;[1] &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;openjdk.java.net&amp;#x2F;jeps&amp;#x2F;189&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;openjdk.java.net&amp;#x2F;jeps&amp;#x2F;189&lt;/a&gt;&lt;p&gt;[2] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;dl.acm.org&amp;#x2F;citation.cfm?id=2972210&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;dl.acm.org&amp;#x2F;citation.cfm?id=2972210&lt;/a&gt;</text></item></parent_chain><comment><author>pron</author><text>ZGC, included in JDK 11, has a 1ms average pause time and 4ms max on some demanding benchmarks, and they&amp;#x27;re now targeting 1ms max pauses.&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.opsian.com&amp;#x2F;blog&amp;#x2F;javas-new-zgc-is-very-exciting&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.opsian.com&amp;#x2F;blog&amp;#x2F;javas-new-zgc-is-very-exciting&amp;#x2F;&lt;/a&gt;</text></comment>
<story><title>Java 12</title><url>https://jdk.java.net/12/</url></story><parent_chain><item><author>stefan_</author><text>Their lower end target is 10 ms. In a game, 16 ms is your entire time budget.</text></item><item><author>_bxg1</author><text>GC pauses have been one of the major barriers to using garbage collected (read: higher-level) languages for game development. This could open up the JVM for games, which could have some exciting implications.</text></item><item><author>azhenley</author><text>The most interesting new feature I think is the Shenandoah GC. The summary from [1]:&lt;p&gt;&amp;quot;Add a new garbage collection (GC) algorithm named Shenandoah which reduces GC pause times by doing evacuation work concurrently with the running Java threads. Pause times with Shenandoah are independent of heap size, meaning you will have the same consistent pause times whether your heap is 200 MB or 200 GB.&amp;quot;&lt;p&gt;The original algorithm was published in 2016 [2]. It consists of 4 phases: initial marking, concurrent marking, final marking, and concurrent compaction.&lt;p&gt;[1] &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;openjdk.java.net&amp;#x2F;jeps&amp;#x2F;189&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;openjdk.java.net&amp;#x2F;jeps&amp;#x2F;189&lt;/a&gt;&lt;p&gt;[2] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;dl.acm.org&amp;#x2F;citation.cfm?id=2972210&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;dl.acm.org&amp;#x2F;citation.cfm?id=2972210&lt;/a&gt;</text></item></parent_chain><comment><author>spricket</author><text>10 ms isn&amp;#x27;t all that much. When games load in assets they&amp;#x27;ll do various things like malloc huge chunks and you lose a few frames.&lt;p&gt;If GC only causes occasional (maybe every 2 minutes) loss of a frame or two it should be no problem. If you watch benchmark FPS traces that count every frame delay you&amp;#x27;ll see that occasional stutters happen in basically every game.&lt;p&gt;Loss of a single frame just isn&amp;#x27;t noticeable</text></comment>